对于
SimpleAdapter adapter=new SimpleAdapter(this, data, R.layout.listview, new String[]{"userid","username","address"},new int[]{R.id.userid,R.id.username,R.id.address}); view.setAdapter(adapter);
第四个参数里的"userid","username","address"是map集合里的key,最后一个参数是textview,也就是数据界面里的textview.后面还加了个监听,只要点击textview就会显示用户id,android就会通过textview的位置读取内容。
这里把先读数据的代码先贴出来
public List<Student> fiandAll(){ List<Student> all=new ArrayList<Student>(); String sql="select * from student"; SQLiteDatabase database=db.getReadableDatabase(); //使用getReadableDatabase取得SQLiteDatabase Cursor cursor=database.rawQuery(sql, null); //得到游标,类似resultset Student stu; while(cursor.moveToNext()){ //移动游标 int id=cursor.getInt(cursor.getColumnIndex("userid")); String name=cursor.getString(cursor.getColumnIndex("username")); String address=cursor.getString(cursor.getColumnIndex("address")); stu=new Student(); stu.setUserid(id); stu.setUsername(name); stu.setAddress(address); all.add(stu); } cursor.close(); //关闭游标 return all; }
(2)游标适配器
下面是读数据的代码
public Cursor fiandAllCursor(){ List<Student> all=new ArrayList<Student>(); String sql="select userid as _id,username,address from student"; SQLiteDatabase database=db.getReadableDatabase(); //使用getReadableDatabase取得SQLiteDatabase Cursor cursor=database.rawQuery(sql, null); //得到游标,类似resultset //cursor.close(); //这里不可以关闭游标 return cursor; }
这里为主键的列取了别名是因为android内部建议主键设置为_id,但是不可能每个表的主键的名称都是_id
Cursor all=this.service.fiandAllCursor(); //使用游标适配器 SimpleCursorAdapter cadapter=new SimpleCursorAdapter(this, R.layout.listview,all, new String[]{"_id","username","address"},new int[]{R.id.userid,R.id.username,R.id.address}); view.setAdapter(cadapter); //添加列表项监听事件 view.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> parent, View view,int position, long id) { ListView listview=(ListView)parent; Cursor hash=(Cursor)listview.getItemAtPosition(position); //取得被点击item的位置 int temp=hash.getInt(hash.getColumnIndex("_id")); Toast.makeText(DBActivity.this, String.valueOf(temp), 1).show(); }});
这里的适配器参数顺序和上面的有点不同,而且第四个参数里的“usernam”,"address"和'_id'都是表的列名。其他地方没太大区别,上面的“_id”也不能写成别的。否则会出错
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android操作SQLite数据库技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
标签:SQLite
相关阅读 >>
android之采用execsql与rawquery方法完成数据的添删改查操作详解
更多相关阅读请进入《Sqlite》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。