QQ界面学习总结材料.docx

上传人:b****8 文档编号:9402821 上传时间:2023-05-18 格式:DOCX 页数:31 大小:51.16KB
下载 相关 举报
QQ界面学习总结材料.docx_第1页
第1页 / 共31页
QQ界面学习总结材料.docx_第2页
第2页 / 共31页
QQ界面学习总结材料.docx_第3页
第3页 / 共31页
QQ界面学习总结材料.docx_第4页
第4页 / 共31页
QQ界面学习总结材料.docx_第5页
第5页 / 共31页
QQ界面学习总结材料.docx_第6页
第6页 / 共31页
QQ界面学习总结材料.docx_第7页
第7页 / 共31页
QQ界面学习总结材料.docx_第8页
第8页 / 共31页
QQ界面学习总结材料.docx_第9页
第9页 / 共31页
QQ界面学习总结材料.docx_第10页
第10页 / 共31页
QQ界面学习总结材料.docx_第11页
第11页 / 共31页
QQ界面学习总结材料.docx_第12页
第12页 / 共31页
QQ界面学习总结材料.docx_第13页
第13页 / 共31页
QQ界面学习总结材料.docx_第14页
第14页 / 共31页
QQ界面学习总结材料.docx_第15页
第15页 / 共31页
QQ界面学习总结材料.docx_第16页
第16页 / 共31页
QQ界面学习总结材料.docx_第17页
第17页 / 共31页
QQ界面学习总结材料.docx_第18页
第18页 / 共31页
QQ界面学习总结材料.docx_第19页
第19页 / 共31页
QQ界面学习总结材料.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

QQ界面学习总结材料.docx

《QQ界面学习总结材料.docx》由会员分享,可在线阅读,更多相关《QQ界面学习总结材料.docx(31页珍藏版)》请在冰点文库上搜索。

QQ界面学习总结材料.docx

QQ界面学习总结材料

个人学习总结

1.TextView的使用

其使用步骤具体如下:

在Layout/XXX.xml中定义一个TextView,然后设置一些属性

text="TextView01"

android:

id="+id/TextView01"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_x="61px"

android:

layout_y="69px">

其具体知识可以参考:

developer.android./reference/android/widget/TextView.html

在src/xxx.java中声明一个TextView

privateTextViewmTextView01;

利用findViewById()方法获取xxx.xml中的TextView

mTextView01=(TextView)findViewById(R.id.TextView01);

2.EditView的使用和TextView类似

3.Button的使用

与TextView、EditView的区别主要是:

一般为Button绑定一个监听器,操作如下

在Layout/XXX.xml中定义一个Button

②在src/xxx.java中声明一个Button

③利用findViewById()方法获取xxx.xml中的Button

写监听器代码

button_exit.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){

//根据实际需要写代码,注意这里采用的是匿名部类的方式

}

});

4.AlertDialog对话框的使用

newAlertDialog.Builder(XXX.this).setTitle("Android 提示") .setMessage("您确定静音登录吗?

").setPositiveButton("确定",newDialogInterface.OnClickListener(){

publicvoidonClick(DialogInterfacedialog,intwhichButton){

//TODOAuto-generatedmethodstub

根据实际需要填写代码

}

})

.setNegativeButton("取消",newDialogInterface.OnClickListener(){

publicvoidonClick(DialogInterfacedialog,intwhichButton){

//TODOAuto-generatedmethodstub

根据实际需要填写代码

}

})

.show();

5.checkBox的使用

这里省略定义、声明、获取都已经省略了,关键是写checkBox的监听器:

setOnCheckedChangeListener(newOnCheckedChangeListener(){

publicvoidonCheckedChanged(CompoundButtonarg0,booleanarg1){

//TODOAuto-generatedmethodstub

//根据实际情况书写相关代码

//这里采用的也是匿名部类的方式}

});

6.子菜单(optionsmenu)的使用

optionsmenu在屏幕底部最多只能显示6个菜单项

/**

*创建子菜单,在点击Mune时会弹出子菜单

*/

Override

publicbooleanonCreateOptionsMenu(Menumenu){

//TODOAuto-generatedmethodstub

super.onCreateOptionsMenu(menu);

menu.add(0,MENU_SETTINGS,0,"系统设置");

menu.add(0,MENU_CHANGPWD,0,"修改密码");

returntrue;

}

}

/**

*为子菜单写监听器事件

*/

Override

publicbooleanonOptionsItemSelected(MenuItemitem){

//TODOAuto-generatedmethodstub

switch(item.getItemId()){

caseMENU_SETTINGS:

//根据需要设置代码

caseMENU_CHANGPWD:

////根据需要设置代码

}

returnsuper.onOptionsItemSelected(item);

}

7.两个Activity之间的跳转

//生成一个Intent对象

Intentintent=newIntent();

//设置Intent对象要启动的Activity

intent.setClass(xxx.this,xxx1.class);

//通过Intent对象启动另外一个Activity

xxx.this.startActivity(intent);

8.使用XML来创建配置文件

其具体操作如下:

生成一个Preference资源文件,命名为xxx.xml,具体容如下

xmlversion="1.0"encoding="utf-8"?

>

xmlns:

android="schemas.android./apk/res/android"

android:

title="系统设置">

xmlns:

android="schemas.android./apk/res/android"

android:

title="登录设置"

android:

summary="settingsaboutemotions"android:

key="settings">

android:

title="是否记住密码?

"

android:

summaryOn="是"

android:

summaryOff="否"

android:

defaultValue="true"android:

key="opt_remember">

……………………………….>

………………………>

…………………………..>

…………………………………………..>

在xxx.java中获取这个xxx.xml文件代码如下:

addPreferencesFromResource(R.xml.preferences);

根据key找到控件XXXCheckBox

整个java代码可以参考:

.cnblogs./franksunny/archive/2011/10/21/2219890.html

有参考价值的代码:

SharedPreferencessettings=getSharedPreferences("settings",0);

//自动填充密码

StringstrPswInputLable=settings.getString(getString(R.string.strPswInputLabel),null);

//记住密码checkbox设置

finalCheckBoxmlogin_cb_savepwd=(CheckBox)findViewById(R.id.login_cb_savepwd);//记住密码checkbox对象

Stringck1=settings.getString(getString(R.string.saveaccount),

null);//checkbox记录的值

if(ck1!

=null&&ck1.equals("true")){mlogin_cb_savepwd.setChecked(true);}

mlogin_cb_savepwd.setOnCheckedChangeListener(newCompoundButton.OnCheckedChangeListener(){

//Override

publicvoidonCheckedChanged(CompoundButtonbuttonView,

booleanarge){

//TODOAuto-generatedmethodstub

SharedPreferencessettings=getSharedPreferences("settings",0);

Stringck1=settings.getString(getString(R.string.saveaccount),null);

if(ck1!

=null&&ck1.equals("true")){

settings.edit()

putString(getString(R.string.saveaccount),"false").commit();

settings.edit().remove(getString(R.string.saveaccount)).commit();

mlogin_cb_savepwd.setChecked(false);

}

}

});

9.Sqlite数据库的使用

在Android应用中创建数据库后数据库文件是存储在/data/data/应用包名/databases/下。

在Android中使用到SQLite会涉及到以下三个类或接口:

SQLiteOpenHelper

SQLiteOpenHelper构造方法,一般传递一个要创建的数据库名称name参数

onCreate创建数据库时调用

onUpgrade版本更新时调用

getReadableDatabase创建或打开一个只读数据库

getWritableDatabase创建或打开一个读写数据库

SQLiteDatabase

openOrCreateDatabase打开或者创建数据库

insert添加一条记录

delete删除一条记录

query查询记录

update更新记录

execSQL执行一条SQL语句

close关闭数据库

Cursor

getCount总记录条数

isFirst判断是否第一条记录

isLast判断是否最后一条记录

moveToFirst移动到第一条记录

moveToLast移动到最后一条记录

move移动到指定记录

moveToNext移动到下一条记录

moveToPrevious移动到上一条记录

getColumnIndexOrThrow根据列名称获得列索引

getInt获得指定列索引的int类型值

getString获得指定列索引的String类型值

具体操作如下:

创建一个类Class继承SQLiteOpenHelper,具体可以参考下面一段代码

publicclassDB{

publicstaticfinalStringKEY_ACCOUNTS="accounts";

publicstaticfinalStringKEY_SAVEACCOUNT="saveaccount";

publicstaticfinalStringKEY_PWD="pwd";

publicstaticfinalStringKEY_NAME="name";

publicstaticfinalStringKEY_IMAGE="image";

publicstaticfinalStringKEY_AGE="age";

publicstaticfinalStringKEY_ADDRESS="address";

publicstaticfinalStringKEY_GENDER="gender";

publicstaticfinalStringKEY_VISIBLE="visible";

publicstaticfinalStringKEY_SAVEPWD="savepwd";

publicstaticfinalStringKEY_OPENVIBRA="openvibra";

publicstaticfinalStringKEY_RECEIVEGROUPMSG="receivegroupmsg";

publicstaticfinalStringKEY_QUITE="quite";

privateContextmctx;

privateDatabaseHelperdbHelper;

privateStringaccounts;

privatestaticSQLiteDatabasedb;//定义一个SQLiteDatabase的变量

//Constructor构造函数

publicDB(Contextmctx){

this.mctx=mctx;

}

publicvoidopen(){

dbHelper=newDatabaseHelper(mctx);

try{

db=dbHelper.getWritableDatabase();

}

catch(SQLiteExceptione){

db=dbHelper.getReadableDatabase();

}

}

publicstaticclassDatabaseHelperextendsSQLiteOpenHelper{

privatestaticfinalStringDATABASE_NAME="load.db";

privatestaticfinalintDATABASE_VERSION=2;//版本号

/**

*创建表名

*/

staticfinalStringDATABASE_TABLE="user";

/**

*创建一个字符常量

*/

privatestaticfinalStringDATABASE_CREATE=

"CREATETABLEuser("+

"accountsint(10)PRIMARYKEY,"+"saveaccountint(10),"+

"pwdint(20),"+"namechar(20),"+"imagevarchar(20),"+"ageint(10),"+"addressvarchar(20),"+

"genderchar(20),"+"visibleint(3),"+"savepwdint(3),"+"openvibraint(3),"+"receivegroupmsgint(3),"+

"quiteint(3)"+

");";

/*由于simpleCursorAdapter的方法只识别_id,所以,

*用到sqlite的simpleCursorAdapter时,必须把数据表的主键命名为_id。

*/

publicDatabaseHelper(Contextcontext){

super(context,DATABASE_NAME,null,DATABASE_VERSION);

//TODOAuto-generatedconstructorstub

}

//创建数据库

Override

publicvoidonCreate(SQLiteDatabasedb){

//TODOAuto-generatedmethodstub

db.execSQL(DATABASE_CREATE);

}

//更新数据库

Override

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){

//TODOAuto-generatedmethodstub

db.execSQL("DROPTABLEIFEXISTS"+DATABASE_TABLE);

onCreate(db);

}

}

根据自己的实际需要数据库管理类

下面给出几个参考代码:

//添加用户,插入数据:

publiclongadduser(Stringaccounts,Stringpwd,Stringsaveaccount){

//insert方法插入的一行记录使用contentValues存放

ContentValuesargs=newContentValues();

args.put(KEY_ACCOUNTS,accounts);

args.put(KEY_PWD,pwd);

args.put(KEY_SAVEACCOUNT,saveaccount);

//返回新添记录的行号,该行号是一个部值,与主键id无关,发生错误返回-1

returndb.insert(DatabaseHelper.DATABASE_TABLE,null,args);

}

//添加更新,修改数据:

publicbooleanupdate(Stringaccounts,Stringpwd){

ContentValuesargs=newContentValues();

args.put(KEY_PWD,pwd);

returndb.update(DatabaseHelper.DATABASE_TABLE,args,"accounts=?

",newString[]{accounts})>0;

}

//作者定义的新类

publicCursorcheckUser(Stringaccounts,Stringpwd){

CursormCursor=(SQLiteCursor)db.query(true,DatabaseHelper.DATABASE_TABLE,

newString[]{KEY_ACCOUNTS},

"accounts=?

andpwd=?

",

newString[]{accounts,pwd},null,null,null,null);

System.out.println(mCursor);

returnmCursor;

}

/**

*我自己添加的用来保存用户个人信息:

account、name、gender、age、image、address

*

*/

publiclongupdate(Stringaccounts,Stringname,Stringsex,Stringage,intimage,Stringaddress){

//insert方法插入的一行记录使用contentValues存放

ContentValuesargs=newContentValues();

args.put(KEY_ACCOUNTS,accounts);

args.put(KEY_NAME,name);

args.put(KEY_GENDER,sex);

args.put(KEY_AGE,age);

args.put(KEY_IMAGE,image);

args.put(KEY_ADDRESS,address);

//返回新添记录的行号,该行号是一个部值,与主键id无关,发生错误返回-1

/**

*关键问题是如何把第四个参数设置我要输入的用户名

*/

returndb.update(DatabaseHelper.DATABASE_TABLE,args,"accounts=?

",newString[]{accounts});

}

需要用到数据库的地方进行初始化数据库、调用即可。

数据库中还经常使用到Cursor

Cursor是每行的集合。

使用moveToFirst()定位第一行。

必须知道每一列的名称,必须知道每一列的数据类型。

Cursor是一个随机的数据源。

关于Cursor的重要方法:

close()关闭游标,释放资源。

copyStringToBuffer(intcolumnIndex,CharArrayBufferbuffer)在缓冲区中检索请求的列的文本,将将其存储。

getColumnCount()返回所有列的总数。

getColumnIndex(StringcolumnName)返回指定列的名称,如果不存在返回-1。

getColumnIndexOrThrow(StringcolumnName)从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException异常。

getColumnName(intcolumnIndex)从给定的索引返回列名。

getColumnNames()返回一个字符串数组的列名。

getCount()返回Cursor中的行数。

moveToFirst()

移动光标到第一行。

moveToLast()移动光标到最后一行。

moveToNext()移动光标到下一行。

moveToPosition(intposition)移动光标到一个绝对的位置。

moveToPrevious()移动光标到上一行

如何在利用图片的路径打开图片:

希望直接使用res/drawable中的图片,就需要通过下面的方法

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2