SQLite使用方法三二十二.docx
《SQLite使用方法三二十二.docx》由会员分享,可在线阅读,更多相关《SQLite使用方法三二十二.docx(27页珍藏版)》请在冰豆网上搜索。
SQLite使用方法三二十二
SQLite使用方法三
(windows平台)
文件状态
[]草稿文件
[√]正式文件
[]更改正式文件
文件标识:
当前版本:
1.0
作者:
张文胜
完成日期:
2011年4月23日
版本历史
版本/状态
作者
参与者
起止日期
备注
V1.0
草稿文件
张文胜
2011-4-21至
2001-4-23
张文胜起草
目录
1引言1
1.1编写目的1
1.2前景1
1.3定义1
1.4参考资料1
2.1软件的结构2
2.2程序表2
2.3文卷表2
3SQLite使用方法三2
3.1例1Personal_Contacts3
SQLite使用方法三
(windows平台)
1引言
1.1编写目的
学会Android友善的免费应用程序开发环境,阅读者为计算机应用与网络教研室Android开发小组成员。
1.2前景
说明:
a.这份操作手册所描述的软件操作系统的名称为MicrosoftWindowsXPSP3;
b.该软件项目的任务提出者:
计算机应用与网络教研室
开发者:
Android开发小组
用户(或首批用户):
2011级软件工程专业学生
安装软件者:
Android开发小组
1.3定义
Android——一个免费的操作系统平台
JDK5或JDK6——Java开发环境
EclipseIDE——一个多用途的开发工具平台
AndroidSDK——Android程序开发套件,包含Android手机模拟器(Emulator)
ADT——基于Eclipse的Android开发工具扩充套件(AndroidDevelopmentTools
plugin)
1.4参考资料
列出有用的参考资料,如:
a.本项目的经核准的工作计划任务书;
b.Android官方网站
c.开放手持装置联盟(OpenHandsetAlliance)
d.GoogleAndroid开发者部落格http:
//android-
e.Android开发者大赛网站
f.Android文件
g....e-sdk.html
h.CNet专访:
Google手机平台背后的原创者
i..tw/news/comm/0,200...898,00.htm
j.Android源代码网站2软件征述
2.1软件的结构
结合软件系统所具有的功能包括输入、处理和输出提供该软件的总体结构图表。
2.2程序表
列出本系统内每个程序的标识符、编号和助记名。
2.3文卷表
列出将由本系统引用、建立或更新的每个永久性文卷,说明它们各自的标识符、编号、助记名、存储媒体和存储要求。
3SQLite使用方法三
一、个人通信录的实现
确定个人通信录的数据库结构,需要一张表,如下结构
3.1例1Personal_Contacts
1、在Personal_ContactsActivity.java中,添加代码如下:
importstaticedu.eurasia.MyOpenHelper.*;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.app.Dialog;
importandroid.app.AlertDialog.Builder;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.content.DialogInterface.OnClickListener;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.graphics.Color;
importandroid.os.Bundle;
importandroid.view.Gravity;
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.view.ViewGroup.LayoutParams;
importandroid.widget.AdapterView;
importandroid.widget.BaseAdapter;
importandroid.widget.LinearLayout;
importandroid.widget.ListView;
importandroid.widget.TextView;
importandroid.widget.AdapterView.OnItemClickListener;
publicclassPersonal_ContactsActivityextendsActivity{
MyOpenHelpermyHelper;//声明MyOpenHelper对象
String[]contactsName;//声明用于存放联系人姓名的数组
String[]contactsPhone;//声明用于存放联系人电话的数组
int[]contactsId;//声明用于存放联系人id的数组
finalintMENU_ADD=Menu.FIRST;//声明菜单选行的ID
finalintMENU_DELETE=Menu.FIRST+1;//声明菜单项的编号
finalintDIALOG_DELETE=0;//确认删除对话框的ID
ListViewlv;//声明ListView对象
BaseAdaptermyAdapter=newBaseAdapter(){
@Override
publicintgetCount(){
if(contactsName!
=null){//如果姓名数组不为空
returncontactsName.length;
}else{
return0;//如果姓名数组为空则返回0
}
}
@Override
publicObjectgetItem(intarg0){
returnnull;
}
@Override
publiclonggetItemId(intarg0){
return0;
}
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
LinearLayoutll=newLinearLayout(Personal_ContactsActivity.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
TextViewtv=newTextView(Personal_ContactsActivity.this);
tv.setText(contactsName[position]);
tv.setTextSize(32);
tv.setTextColor(Color.BLACK);
tv.setLayoutParams(newLayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
tv.setGravity(Gravity.CENTER_VERTICAL);
TextViewtv2=newTextView(Personal_ContactsActivity.this);
tv2.setText("["+contactsPhone[position]+"]");
tv2.setTextSize(28);
tv2.setTextColor(Color.BLACK);
tv2.setLayoutParams(newLayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
tv2.setGravity(Gravity.BOTTOM|Gravity.RIGHT);//设置TextView控件在父容器中的位置
ll.addView(tv);
ll.addView(tv2);
returnll;
}
};
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myHelper=newMyOpenHelper(this,DB_NAME,null,1);
lv=(ListView)findViewById(R.id.lv);
lv.setAdapter(myAdapter);
lv.setOnItemClickListener(newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView
>arg0,Viewview,
intposition,longid){
Intentintent=newIntent(Personal_ContactsActivity.this,
DetailActivity.class);
intent.putExtra("cmd",0);//0代表查询联系人,1代表添加联系人
intent.putExtra("id",contactsId[position]);
startActivity(intent);
}
});
}
@Override
protectedvoidonResume(){
getBasicInfo(myHelper);
myAdapter.notifyDataSetChanged();
super.onResume();
}
//方法:
获取所有联系人的姓名
publicvoidgetBasicInfo(MyOpenHelperhelper){
SQLiteDatabasedb=helper.getWritableDatabase();//获取数据库连接
Cursorc=db.query(TABLE_NAME,newString[]{ID,NAME,PHONE},null,
null,null,null,ID);
intidIndex=c.getColumnIndex(ID);
intnameIndex=c.getColumnIndex(NAME);//获得姓名列的列号
intphoneIndex=c.getColumnIndex(PHONE);//获得电话列的序号
contactsName=newString[c.getCount()];//创建存放姓名的String数组对象
contactsId=newint[c.getCount()];//创建存放id的int数组对象
contactsPhone=newString[c.getCount()];//创建存放phone的数组对象
inti=0;//声明一个计数器
for(c.moveToFirst();!
(c.isAfterLast());c.moveToNext()){
contactsName[i]=c.getString(nameIndex);//将姓名添加到String数组中
contactsId[i]=c.getInt(idIndex);
contactsPhone[i]=c.getString(phoneIndex);//将固定电话添加到String数组中
i++;
}
c.close();//关闭Cursor对象
db.close();//关闭SQLiteDatabase对象
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
menu.add(0,MENU_ADD,0,R.string.menu_add).setIcon(R.drawable.add);//添加“添加”菜单选项
menu.add(0,MENU_DELETE,0,R.string.menu_delete).setIcon(
R.drawable.delete);//添加“删除”菜单选项
returnsuper.onCreateOptionsMenu(menu);
}
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){
switch(item.getItemId()){//判断按下的菜单选项
caseMENU_ADD:
//按下添加按钮
Intentintent=newIntent(Personal_ContactsActivity.this,
DetailActivity.class);
intent.putExtra("cmd",1);
startActivity(intent);
break;
caseMENU_DELETE:
//按下了删除选项
showDialog(DIALOG_DELETE);//显示确认删除对话框
break;
}
returnsuper.onOptionsItemSelected(item);
}
@Override
protectedDialogonCreateDialog(intid){
Dialogdialog=null;
switch(id){//对对话框ID进行判断
caseDIALOG_DELETE:
//创建删除确认对话框
Builderb=newAlertDialog.Builder(this);
b.setIcon(R.drawable.dialog_delete);//设置对话框图标
b.setTitle("提示");//设置对话框标题
b.setMessage(R.string.dialog_message);//设置对话框内容
b.setPositiveButton(R.string.ok,newOnClickListener(){//点下确认删除按钮
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
intposition=Personal_ContactsActivity.this.lv
.getSelectedItemPosition();
deleteContact(contactsId[position]);
getBasicInfo(myHelper);
myAdapter.notifyDataSetChanged();
}
});
b.setNegativeButton(R.string.cancel,newOnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
}
});
dialog=b.create();
break;
}
returndialog;
}
//方法:
删除指定联系人
publicvoiddeleteContact(intid){
SQLiteDatabasedb=myHelper.getWritableDatabase();//获得数据库对象
db.delete(TABLE_NAME,ID+"=?
",newString[]{id+""});
db.close();
}
}
2、在main.xml中,添加代码如下:
xmlversion="1.0"encoding="utf-8"?
>
android="
android:
orientation="vertical"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
background="@drawable/back"
>
android:
orientation="horizontal"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_gravity="center_horizontal"
>
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_gravity="center_horizontal"
android:
text="@string/title"
android:
textSize="24px"
android:
textColor="@color/text"
/>
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
src="@drawable/title"
/>
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
fillViewport="true"
>
android:
id="@+id/lv"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
choiceMode="singleChoice"
/>
3、新建/Personal_Contacts/res/values/colors.xml中,代码如下:
xmlversion="1.0"encoding="utf-8"?
>
#000000
4、在/Personal_Contacts/res/values/strings.xml中,添加代码如下:
xmlversion="1.0"encoding="utf-8"?
>
HelloWorld,Personal_ContactsActivity!
个人通信录
姓名:
固定电话:
移动电话:
电子邮件:
邮政编码:
通信地址:
公司名称:
添加
修改
删除
保存
确认删除此人吗?
确定
取消
联系人列表
5、在MyOp