实验报告
课程名称 | 基于Android平台移动互联网开发 | 实验日期 | 2016年5月3日 | ||
实验项目名称 | SQLite数据库操作 | 实验地点 | S30010 | ||
实验类型 | □验证型 √设计型 □综合型 | 学 时 | 2 | ||
一、实验目的及要求(本实验所涉及并要求掌握的知识点) | |||||
1.目的:设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面。 2.要求:程序主界面是通讯录的目录显示手机上联系人的名称。点击联系人的姓名可以显示联系人的详细信息。在按了MEMU键之后会弹出菜单栏。单击菜单栏上的按钮可以添加联系人和删除联系人
| |||||
二、实验环境(本实验所使用的硬件设备和相关软件) | |||||
(1)PC机 (2)操作系统:Windows XP (3)软件: Eclipse, JDK1.6,Android SDK,ADT | |||||
三、实验内容及步骤 | |||||
1)在res/drawable-mdpi目录下拷入程序要用的图标 2)定义字符串资源string.xml 3)开发布局文件activity_main.xml用于显示联系人列表。 4)layout目录下新建一个detail.xml,用于显示联系人详细信息 5)接下来便进入MainActivity端的开发,实现数据库增加、删除、修改记录等操作 | |||||
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)
| |||||
代码: mainActivity.java的代码: package com.example.sql;
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
import android.os.Bundle; import android.printservice.PrintService; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Color; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnCreateContextMenuListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.Button; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast;
public class MainActivity extends Activity { Button add,delete; ListView list; MyOpenHelper dbhelper; SQLiteDatabase db; String s;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i("kdsjflkasjdklfas", "daskfjaklsjfdklsaf"); add=(Button)findViewById(R.id.button1); delete=(Button)findViewById(R.id.button2); list=(ListView)findViewById(R.id.listView1); Log.i("kdsjflkasjdklfas", "daskfjaklsjfdklsaf"); dbhelper=new MyOpenHelper(MainActivity.this, "personal_contacts.db",null,1); db=dbhelper.getReadableDatabase();
Cursor c=db.rawQuery("select * from contacts", null); inflateList(c);
list.setOnItemClickListener(new OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) { // TODO Auto-generated method stub view.setBackgroundColor(Color.BLUE); TextView textview=(TextView)view.findViewById(R.id.textView1); s = textview.getText().toString();
} }); list.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override public boolean onItemLongClick(AdapterView<?> arg0, View view, int arg2, long arg3) { // TODO Auto-generated method stub view.setBackgroundColor(Color.BLUE); // TextView textview=(TextView)view.findViewById(R.id.textView1); // s = textview.getText().toString(); Intent intent1=new Intent(MainActivity.this,result.class); startActivity(intent1); finish(); return false; } });
add.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent=new Intent(MainActivity.this,result.class); startActivity(intent); finish(); } });
delete.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated method stub db.delete("contacts", "name=?", new String[]{s}); Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_LONG).show(); Cursor c=db.rawQuery("select * from contacts", null); inflateList(c); } }); list.setOnItemClickListener(new OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) { // TODO Auto-generated method stub view.setBackgroundColor(Color.BLUE); TextView textview=(TextView)view.findViewById(R.id.textView1); s = textview.getText().toString();
} });
} private void inflateList(Cursor c) { // TODO Auto-generated method stub int count=c.getCount(); String[] name=new String[count]; int b=0; while(c.moveToNext()){ name[b]=c.getString(c.getColumnIndex("name")); b++; } ArrayList<HashMap<String, Object>> listitem=new ArrayList<HashMap<String,Object>>(); for(int i=0;i<count;i++){ HashMap<String,Object> map=new HashMap<String, Object>(); map.put("ItemTitle", "name[i]"); Log.i("jakfaksjflaksjfl", "skajfklajslkfj"); listitem.add(map); SimpleAdapter m=new SimpleAdapter(MainActivity.this, listitem, R.layout.item, new String[]{"ItemTitle"}, new int[]{R.id.ItemTitle}); list.setAdapter(m); @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }
} 运行结果:(截图)
| |||||
五、实验总结(对本实验结果进行分析,实验心得体会及改进意见) | |||||
对于这次的实验,我感觉有点难度,因为思路不是很清晰,所以实验并没有成功,虽然可以成功的添加数据,但是并不能让数据显示在listView上,不过虽然失败了,但是还是有所收获,我会继续寻找解决的方法。 | |||||
实验评语 |
| ||||
实验成绩 |
| 指导教师签名: 年 月 日 | |||