当前位置: 首页 > news >正文

Android数据显示之ListView

1.使用SimpleAdapter

List<Person> persons = personService.getScrollData(0, 5); //构造SimpleAdapter的参数类型 List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>(); //把Person数据放到HashMap当中去 for(Person person : persons) { HashMap<String, Object> item = new HashMap<String, Object>(); item.put("id", person.getId()); item.put("name", person.getName()); item.put("amount", person.getAmount()); data.add(item); } //把数据绑定到SimpleAdapter SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item, new String[]{"id", "name", "amount"}, new int[]{R.id.id, R.id.name, R.id.amount}); listView.setAdapter(adapter); //设置ListView点击事件响应 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ListView lView = (ListView)parent; HashMap<String, Object> item = (HashMap<String, Object>)lView.getItemAtPosition(position); Toast.makeText(MainActivity.this, item.get("id").toString(), 1).show(); } });

public List<Person> getScrollData(Integer offset, Integer maxResult) { List<Person> persons = new ArrayList<Person>(); SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("select * from person limit ?,?", new String[]{offset.toString(), maxResult.toString()}); while(cursor.moveToNext()) { int personid = cursor.getInt(cursor.getColumnIndex("personid")); String name = cursor.getString(cursor.getColumnIndex("name")); int amount = cursor.getInt(cursor.getColumnIndex("amount")); Person person = new Person(personid, name); person.setAmount(amount); persons.add(person); } cursor.close(); return persons; }


2.使用SimpleCursorAdapter

//获取前五项数据,注意这里Cursor里面必须有"_id",否则Cursor不会工作 Cursor cursor = personService.getCursorScrollData(0, 5); //使用SimpleCursorAdapter SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.item, cursor, new String[]{"_id", "name", "amount"}, new int[]{R.id.id, R.id.name, R.id.amount}); listView.setAdapter(adapter); //设置ListView点击事件响应 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ListView lView = (ListView)parent; //把当前位置强制转换为Cursor Cursor data = (Cursor)lView.getItemAtPosition(position); //获取当前item的位置信息 int personid = data.getInt(data.getColumnIndex("_id")); //显示出当前item的id信息 Toast.makeText(MainActivity.this, personid+"", 1).show(); } });

//注意这里的personid as _id,是因为Cursor里面必须有_id

public Cursor getCursorScrollData(Integer offset, Integer maxResult) { SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); //注意这里的personid as _id,是因为Cursor里面必须有_id return db.rawQuery("select personid as _id, name, amount from person limit ?,?", new String[]{offset.toString(), maxResult.toString()}); }

相关文章:

  • String、StringBuffer、StringBuilder比较
  • Android数据存储之ContentProvider
  • [BZOJ 3680]吊打XXX(模拟退火)
  • 可达性分析算法-确定那些对象是垃圾(转)
  • Android之使用ContentResolver对通信录中的数据进行简单操作
  • Android之网络操作 - 从网络获取图片或网页
  • OpenGL学习--开发环境
  • jQuery常用总结(转载)
  • Android之把从网络中获取的数据以XML与Json格式返回
  • 抗锯齿的BUG
  • Spring Boot 定时任务的使用
  • VC2012编译CEF3-转
  • Android之用HTTP的get,post,HttpClient三种方式向service提交文本数据
  • PCB原理图库
  • mysql相关故障
  • 【翻译】babel对TC39装饰器草案的实现
  • flutter的key在widget list的作用以及必要性
  • JavaScript HTML DOM
  • Promise面试题2实现异步串行执行
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Webpack 4 学习01(基础配置)
  • 多线程事务回滚
  • 前嗅ForeSpider教程:创建模板
  • 删除表内多余的重复数据
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 一、python与pycharm的安装
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2)STL算法之元素计数
  • (转)shell调试方法
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .naturalWidth 和naturalHeight属性,
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .Net Memory Profiler的使用举例
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .Net Redis的秒杀Dome和异步执行
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .net中生成excel后调整宽度
  • .net中我喜欢的两种验证码
  • .project文件
  • /bin/rm: 参数列表过长"的解决办法
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @ComponentScan比较
  • @Transactional 详解
  • [100天算法】-目标和(day 79)
  • [20170705]diff比较执行结果的内容.txt
  • [Android Studio] 开发Java 程序
  • [Ariticle] 厚黑之道 一 小狐狸听故事
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [EFI]Acer Aspire A515-54g电脑 Hackintosh 黑苹果efi引导文件
  • [Java] 图说 注解
  • [Java基础]—JDBC