1、SQLite使用方法三二十二SQLite使用方法三(windows平台)文件状态 草稿文件 正式文件 更改正式文件文件标识:当前版本:1.0作 者:张文胜完成日期:2011年4月23日版 本 历 史版本/状态作者参与者起止日期备注V 1.0草稿文件张文胜2011-4-21至2001-4-23张文胜起草目 录1引言 11.1编写目的 11.2前景 11.3定义 11.4参考资料 12.1软件的结构 22.2程序表 22.3文卷表 23 SQLite使用方法三 23.1 例1 Personal_Contacts 3SQLite使用方法三(windows平台)1引言1.1编写目的学会Android友
2、善的免费应用程序开发环境,阅读者为计算机应用与网络教研室Android开发小组成员。1.2前景说明:a 这份操作手册所描述的软件操作系统的名称为Microsoft Windows XP SP3;b 该软件项目的任务提出者:计算机应用与网络教研室开发者:Android开发小组用户(或首批用户):2011级软件工程专业学生安装软件者:Android开发小组1.3定义Android一个免费的操作系统平台JDK 5 或JDK 6Java 开发环境Eclipse IDE一个多用途的开发工具平台Android SDKAndroid 程序开发套件,包含Android 手机模拟器(Emulator)ADT基于
3、Eclipse 的Android 开发工具扩充套件(Android Development Toolsplugin)1.4参考资料列出有用的参考资料,如:a 本项目的经核准的工作计划任务书;b Android 官方网站c 开放手持装置联盟(Open Handset Alliance) d Google Android 开发者部落格http:/android-e Android 开发者大赛网站f Android 文件g . e-sdk.htmlh CNet 专访:Google 手机平台背后的原创者i .tw/news/comm/0,200 . 898,00.htmj Android 源代码网站
4、2软件征述2.1软件的结构结合软件系统所具有的功能包括输入、处理和输出提供该软件的总体结构图表。2.2程序表列出本系统内每个程序的标识符、编号和助记名。2.3文卷表列出将由本系统引用、建立或更新的每个永久性文卷,说明它们各自的标识符、编号、助记名、存储媒体和存储要求。 3 SQLite使用方法三一、个人通信录的实现 确定个人通信录的数据库结构,需要一张表,如下结构3.1 例1 Personal_Contacts1、在Personal_ContactsActivity.java中,添加代码如下:import static edu.eurasia.MyOpenHelper.*;import and
5、roid.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.AlertDialog.Builder;import android.content.DialogInterface;import android.content.Intent;import android.content.DialogInterface.OnClickListener;import android.database.Cursor;import android.database.sqlite.
6、SQLiteDatabase;import android.graphics.Color;import android.os.Bundle;import android.view.Gravity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.AdapterView;import android.w
7、idget.BaseAdapter;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;import android.widget.AdapterView.OnItemClickListener;public class Personal_ContactsActivity extends Activity MyOpenHelper myHelper; / 声明MyOpenHelper对象 String contactsName; / 声明用于存放联系人姓
8、名的数组 String contactsPhone; / 声明用于存放联系人电话的数组 int contactsId; / 声明用于存放联系人id的数组 final int MENU_ADD = Menu.FIRST; / 声明菜单选行的ID final int MENU_DELETE = Menu.FIRST + 1; / 声明菜单项的编号 final int DIALOG_DELETE = 0; / 确认删除对话框的ID ListView lv; / 声明ListView对象 BaseAdapter myAdapter = new BaseAdapter() Override public
9、 int getCount() if (contactsName != null) / 如果姓名数组不为空 return contactsName.length; else return 0; / 如果姓名数组为空则返回0 Override public Object getItem(int arg0) return null; Override public long getItemId(int arg0) return 0; Override public View getView(int position, View convertView, ViewGroup parent) Line
10、arLayout ll = new LinearLayout(Personal_ContactsActivity.this); ll.setOrientation(LinearLayout.HORIZONTAL); TextView tv = new TextView(Personal_ContactsActivity.this); tv.setText(contactsNameposition); tv.setTextSize(32); tv.setTextColor(Color.BLACK); tv.setLayoutParams(new LayoutParams(LayoutParams
11、.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); tv.setGravity(Gravity.CENTER_VERTICAL); TextView tv2 = new TextView(Personal_ContactsActivity.this); tv2.setText( + contactsPhoneposition + ); tv2.setTextSize(28); tv2.setTextColor(Color.BLACK); tv2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT
12、, LayoutParams.WRAP_CONTENT); tv2.setGravity(Gravity.BOTTOM | Gravity.RIGHT); / 设置TextView控件在父容器中的位置 ll.addView(tv); ll.addView(tv2); return ll; ; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); myHelper = new MyOpenHelper(t
13、his, DB_NAME, null, 1); lv = (ListView) findViewById(R.id.lv); lv.setAdapter(myAdapter); lv.setOnItemClickListener(new OnItemClickListener() Override public void onItemClick(AdapterView arg0, View view, int position, long id) Intent intent = new Intent(Personal_ContactsActivity.this, DetailActivity.
14、class); intent.putExtra(cmd, 0); / 0代表查询联系人,1代表添加联系人 intent.putExtra(id, contactsIdposition); startActivity(intent); ); Override protected void onResume() getBasicInfo(myHelper); myAdapter.notifyDataSetChanged(); super.onResume(); / 方法:获取所有联系人的姓名 public void getBasicInfo(MyOpenHelper helper) SQLiteD
15、atabase db = helper.getWritableDatabase(); / 获取数据库连接 Cursor c = db.query(TABLE_NAME, new String ID, NAME, PHONE , null, null, null, null, ID); int idIndex = c.getColumnIndex(ID); int nameIndex = c.getColumnIndex(NAME); / 获得姓名列的列号 int phoneIndex = c.getColumnIndex(PHONE); / 获得电话列的序号 contactsName = ne
16、w Stringc.getCount(); / 创建存放姓名的String数组对象 contactsId = new intc.getCount(); / 创建存放id的int数组对象 contactsPhone = new Stringc.getCount(); / 创建存放phone的数组对象 int i = 0; / 声明一个计数器 for (c.moveToFirst(); !(c.isAfterLast(); c.moveToNext() contactsNamei = c.getString(nameIndex); / 将姓名添加到String数组中 contactsIdi = c
17、.getInt(idIndex); contactsPhonei = c.getString(phoneIndex); / 将固定电话添加到String数组中 i+; c.close(); / 关闭Cursor对象 db.close(); / 关闭SQLiteDatabase对象 Override public boolean onCreateOptionsMenu(Menu menu) menu.add(0, MENU_ADD, 0, R.string.menu_add).setIcon(R.drawable.add); / 添加“添加”菜单选项 menu.add(0, MENU_DELET
18、E, 0, R.string.menu_delete).setIcon( R.drawable.delete); / 添加“删除”菜单选项 return super.onCreateOptionsMenu(menu); Override public boolean onOptionsItemSelected(MenuItem item) switch (item.getItemId() / 判断按下的菜单选项 case MENU_ADD: / 按下添加按钮 Intent intent = new Intent(Personal_ContactsActivity.this, DetailAct
19、ivity.class); intent.putExtra(cmd, 1); startActivity(intent); break; case MENU_DELETE: / 按下了删除选项 showDialog(DIALOG_DELETE); / 显示确认删除对话框 break; return super.onOptionsItemSelected(item); Override protected Dialog onCreateDialog(int id) Dialog dialog = null; switch (id) / 对对话框ID进行判断 case DIALOG_DELETE:
20、 / 创建删除确认对话框 Builder b = new AlertDialog.Builder(this); b.setIcon(R.drawable.dialog_delete); / 设置对话框图标 b.setTitle(提示); / 设置对话框标题 b.setMessage(R.string.dialog_message); / 设置对话框内容 b.setPositiveButton(R.string.ok, new OnClickListener() / 点下确认删除按钮 Override public void onClick(DialogInterface dialog, int
21、 which) int position = Personal_ContactsActivity.this.lv .getSelectedItemPosition(); deleteContact(contactsIdposition); getBasicInfo(myHelper); myAdapter.notifyDataSetChanged(); ); b.setNegativeButton(R.string.cancel, new OnClickListener() Override public void onClick(DialogInterface dialog, int whi
22、ch) ); dialog = b.create(); break; return dialog; / 方法:删除指定联系人 public void deleteContact(int id) SQLiteDatabase db = myHelper.getWritableDatabase(); / 获得数据库对象 db.delete(TABLE_NAME, ID + =?, new String id + ); db.close(); 2、在main.xml中,添加代码如下: 3、新建/Personal_Contacts/res/values/colors.xml中,代码如下: #0000004、在/Personal_Contacts/res/values/strings.xml中,添加代码如下: Hello World, Personal_ContactsActivity! 个人通信录 姓名: 固定电话: 移动电话: 电子邮件: 邮政编码: 通信地址: 公司名称: 添加 修改 删除 保存 确认删除此人吗? 确定 取消 联系人列表5、 在MyOp
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1