Android SQLite事务处理结合Listview列表显示功能示例


当前第2页 返回上一页

对于

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

返回前面的内容

相关阅读 >>

一些很有用的Sqlite命令总结

仿orm自动生成分页sql分享

支持多类型数据库的c#数据库模型示例

c#操作Sqlite数据库之读写数据库的方法

.net数据库操作框架sqlsugar的简单入门

c# 启动 sql server 服务的实例

Sqlite 实现if not exist 类似功能的操作

保护你的Sqlite数据库(Sqlite数据库安全秘籍)

android之采用execsql与rawquery方法完成数据的添删改查操作详解

android中操作Sqlite数据库快速入门教程

更多相关阅读请进入《Sqlite》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...