实验八:SQLite数据库操作
实验报告
课程名称 |
基于Android平台移动互联网开发 |
实验日期 |
2016年5月6日 |
||
实验项目名称 |
SQLite数据库操作 |
实验地点 |
S3010 |
||
实验类型 |
□验证型 √设计型 □综合型 |
学 时 |
2 |
||
一、实验目的及要求(本实验所涉及并要求掌握的知识点) |
|||||
|
|||||
二、实验环境(本实验所使用的硬件设备和相关软件) |
|||||
(1)PC机 (2)操作系统:Windows XP (3)软件: Eclipse, JDK1.6,Android SDK,ADT |
|||||
三、实验内容及步骤 |
|||||
(1) 确定数据库的数据结构。 (2) 新建工程,修改布局文件,定义字符串资源。 (3) 开发布局文件activity_main.xml用于显示联系人列表。 (4) layout目录下新建一个detail.xml,用于显示联系人详细信息。 (5) 开发数据库辅助类MyOpenHelper类 (6) DetailActivity端开发实现数据库增加、删除、修改记录等操作 (7) 新建Activity名为DetailActivity.java,实现联系人详细信息显示功能。 |
|||||
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)
|
|||||
代码: MainActivity代码: 1 public class MainActivity extends Activity { 2 Button btnadd, btndel; 3 Intent it = new Intent(); 4 ListView listview; 5 UserSQL usersql; 6 SQLiteDatabase userdatabases; 7 ArrayList<HashMap<String, Object>> userlist; 8 String[] name=new String[100]; 9 10 @Override 11 protected void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 setContentView(R.layout.activity_main); 14 btnadd = (Button) findViewById(R.id.add); 15 btndel = (Button) findViewById(R.id.delete); 16 listview = (ListView) findViewById(R.id.listView1); 17 usersql = new UserSQL(MainActivity.this, "user.db", null, 1); 18 userdatabases = usersql.getReadableDatabase(); 19 userlist = new ArrayList<HashMap<String, Object>>(); 20 Cursor cursor = userdatabases.rawQuery("select * from userTable", null); 21 cursor.moveToFirst(); 22 if (cursor.getCount() > 0) { 23 for (int i = 0; i < cursor.getCount(); i++) { 24 HashMap<String, Object> hashmap = new HashMap<String, Object>(); 25 hashmap.put("name", 26 cursor.getString(cursor.getColumnIndex("name"))); 27 name[i]=cursor.getString(cursor.getColumnIndex("name")); 28 hashmap.put("phone", 29 "["+cursor.getString(cursor.getColumnIndex("phone"))+"]"); 30 userlist.add(hashmap); 31 if (i < cursor.getCount()) { 32 cursor.moveToNext(); 33 } 34 } 35 SimpleAdapter sa = new SimpleAdapter(MainActivity.this, userlist, 36 R.layout.userlist, new String[] { "name", "phone" }, new int[] { 37 R.id.namelist, R.id.phonelist }); 38 listview.setAdapter(sa); 39 } 40 listview.setOnItemClickListener(new OnItemClickListener() { 41 42 @Override 43 public void onItemClick(AdapterView<?> parent, View view, 44 int position, long id) { 45 // TODO Auto-generated method stub 46 Intent intent=new Intent(MainActivity.this,DetailActivity.class); 47 Bundle bd=new Bundle(); 48 bd.putString("name", name[position]); 49 50 intent.putExtras(bd); 51 startActivity(intent); 52 } 53 }); 54 btnadd.setOnClickListener(new OnClickListener() { 55 56 @Override 57 public void onClick(View v) { 58 // TODO Auto-generated method stub 59 it.setClass(MainActivity.this, DetailActivity.class); 60 Bundle bd=new Bundle(); 61 bd.putString("name", ""); 62 63 it.putExtras(bd); 64 startActivity(it); 65 66 } 67 }); 68 btndel.setOnClickListener(new OnClickListener() { 69 70 @Override 71 public void onClick(View v) { 72 // TODO Auto-generated method stub 73 it.setClass(MainActivity.this, DeleteActivity.class); 74 startActivity(it); 75 } 76 }); 77 } 78 79 @Override 80 public boolean onCreateOptionsMenu(Menu menu) { 81 // Inflate the menu; this adds items to the action bar if it is present. 82 getMenuInflater().inflate(R.menu.main, menu); 83 return true; 84 } 85 86 } DetailActivity代码: 1 public class DetailActivity extends Activity { 2 EditText edname, edphone, edmobile, edemail, edpost, edaddr, edcomp; 3 String name, phone, mobile, email, post, addr, comp; 4 Button btnadd; 5 UserSQL usersql; 6 SQLiteDatabase userdatabase; 7 Bundle bd; 8 String selectname; 9 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.detail); 13 btnadd = (Button) findViewById(R.id.deadd); 14 edname = (EditText) findViewById(R.id.edname); 15 edphone = (EditText) findViewById(R.id.edphone); 16 edmobile = (EditText) findViewById(R.id.edmoblie); 17 edemail = (EditText) findViewById(R.id.edemail); 18 edpost = (EditText) findViewById(R.id.edpost); 19 edaddr = (EditText) findViewById(R.id.edaddr); 20 edcomp = (EditText) findViewById(R.id.edcomp); 21 usersql = new UserSQL(DetailActivity.this, "user.db", null, 1); 22 userdatabase = usersql.getReadableDatabase(); 23 bd = getIntent().getExtras(); 24 if (!bd.getString("name").equals("")) { 25 selectname = bd.getString("name"); 26 Cursor cursor = userdatabase.rawQuery( 27 "select * from userTable where name=?", 28 new String[] { selectname }); 29 cursor.moveToFirst(); 30 edname.setText(cursor.getString(cursor.getColumnIndex("name"))); 31 edphone.setText(cursor.getString(cursor.getColumnIndex("phone"))); 32 edmobile.setText(cursor.getString(cursor.getColumnIndex("mobile"))); 33 edemail.setText(cursor.getString(cursor.getColumnIndex("email"))); 34 edpost.setText(cursor.getString(cursor.getColumnIndex("post"))); 35 edaddr.setText(cursor.getString(cursor.getColumnIndex("addr"))); 36 edcomp.setText(cursor.getString(cursor.getColumnIndex("comp"))); 37 btnadd.setText("刷新联系人"); 38 } 39 btnadd.setOnClickListener(new OnClickListener() { 40 41 @Override 42 public void onClick(View v) { 43 // TODO Auto-generated method stub 44 name = edname.getText().toString(); 45 phone = edphone.getText().toString(); 46 mobile = edmobile.getText().toString(); 47 email = edemail.getText().toString(); 48 post = edpost.getText().toString(); 49 addr = edaddr.getText().toString(); 50 comp = edcomp.getText().toString(); 51 52 if (!name.equals("") && !phone.equals("") && !mobile.equals("") 53 && !email.equals("") && !post.equals("") 54 && !addr.equals("") && !comp.equals("")) { 55 56 Cursor cursor = userdatabase.rawQuery( 57 "select * from userTable where name=?", 58 new String[] { name }); 59 cursor.moveToFirst(); 60 ContentValues cv = new ContentValues(); 61 cv.put("name", name); 62 cv.put("phone", phone); 63 cv.put("mobile", mobile); 64 cv.put("email", email); 65 cv.put("post", post); 66 cv.put("addr", addr); 67 cv.put("comp", comp); 68 if (cursor.getCount() <= 0) { 69 userdatabase.insert("userTable", null, cv); 70 cv.clear(); 71 Toast.makeText(DetailActivity.this, "保存" + name + "成功", 72 Toast.LENGTH_LONG).show(); 73 userdatabase.delete("userTable", "name=?", 74 new String[] { selectname }); 75 76 Intent it = new Intent(); 77 it.setClass(DetailActivity.this, MainActivity.class); 78 startActivity(it); 79 finish(); 80 } else if (cursor.getCount() == 1 81 && cursor.getString(cursor.getColumnIndex("name")) 82 .equals(selectname)) { 83 userdatabase.update("userTable", cv, "name=?", 84 new String[] { selectname }); 85 cv.clear(); 86 Toast.makeText(DetailActivity.this, "刷新联系人" + name + "成功", 87 Toast.LENGTH_LONG).show(); 88 Intent it = new Intent(); 89 it.setClass(DetailActivity.this, MainActivity.class); 90 startActivity(it); 91 finish(); 92 } else { 93 94 Toast.makeText(DetailActivity.this, name + "已被注册", 95 Toast.LENGTH_LONG).show(); 96 } 97 } else { 98 Toast.makeText(DetailActivity.this, "信息填写不完整", 99 Toast.LENGTH_LONG).show(); 100 } 101 } 102 103 }); 104 } 105 }
运行结果:(截图)
|
|||||
五、实验总结(对本实验结果进行分析,实验心得体会及改进意见) |
|||||
经过本次实验,对于数据库数据的新增、删除等有了一定的了解,经过同学讨论以及参考老师所给的材料,再加上结合老师上课讲的重点难点,大概能够完成,但依然存在一些小问题。 |
|||||
实验评语 |
|
||||
实验成绩 |
|
指导教师签名: 年 月 日 |
|||