Android ListView数据绑定显示的三种解决方法

白头到老82

白头到老82

2016-02-19 10:10

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享Android ListView数据绑定显示的三种解决方法吧。

首先,创建一个用于显示一个item的layout,名为item.xml
代码如下:

?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"

TextView
android:id="@+id/name"
android:layout_width="120dp"
android:layout_height="wrap_content" /

TextView
android:id="@+id/phone"
android:layout_width="150dp"
android:layout_height="wrap_content" /

TextView
android:id="@+id/amount"
android:layout_width="fill_parent"
android:layout_height="wrap_content" /

/LinearLayout

然后,在main.xml中,添加一个ListView数据显示控件,添加id名称为listview

接下来便是进行数据的绑定,总共分为三种方法:
代码如下:

 private void show1() {
  List persons = ps.getScollData(0, 10);
  ListHashMapString, Object data = new ArrayListHashMapString, Object();
  for (Person person : persons) {
   HashMapString, Object item = new HashMapString, Object();
   item.put("amount", person.getAmount());
   item.put("id", person.getId());
   item.put("name", person.getName());
   item.put("phone", person.getPhone());
   data.add(item);
  }
  SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(),data, R.layout.item,
    new String[] { "name", "phone", "amount" }, new int[] {R.id.name, R.id.phone, R.id.amount });
          // item表示为之前定义的item.xml,表示将data集合中的每一个对象绑定到些item中,即将data中的每一项绑定到一个视图item上;
          // 后两个参数表示把结果集中哪些key的值绑定到哪些控件上;(把结果集中key为name对应的对象绑定到视图中id为name的控件上)
  listview.setAdapter(adapter);//内部处理流程如下
  // {int total = adapter.getCount();// 获取得到的数据总数
  // int perpage = 7;//获取每一页的显示条目数,
  // for (int i = 0; i perpage; i++) {
  // View view = adapter.getView(i, convertView, parent);//第二次执行时会将前一次执行的view传给convertView;
  // 显示条目
  // }}
 }

 private void show2() {//此方法需要一个结果集中的Cursor,要求Cursor中需要有一个名称为_id的字段;所以添加一个获取Cursor的方法如下!
  Cursor cursor = ps.getCursorScollData(0, 10);
  SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.item, cursor,
    new String[] { "name", "phone", "amount" }, new int[] {R.id.name, R.id.phone, R.id.amount });
  listview.setAdapter(adapter);
 }

     public Cursor getCursorScollData(int offest, int maxResult) {
  SQLiteDatabase db = dbOpenHelper.getReadableDatabase();//因为要求结果集中要有一个名为_id的字,所以SQL语句如下!
  Cursor cursor = db.rawQuery("select personid as _id,name,phone,amount from person order by personid asc limit ?,?",
      new String[] { String.valueOf(offest),String.valueOf(maxResult) });
  // db.query(table, columns, selection, selectionArgs, groupBy, having,orderBy, limit);
  return cursor;
 }

 private void show3() {
  List persons = ps.getScollData(0, 10);// PersonAdapter见下一章节自定义适配器
  PersonAdapter adapter = new PersonAdapter(getApplicationContext(),persons, R.layout.item);
  listview.setAdapter(adapter);
 }

当每点击一项需要获取此项的相关信息时可以添加此方法:
listview.setOnItemClickListener(new ItemClickListener());

 private final class ItemClickListener implements OnItemClickListener {
  @Override//此方法中第一个参数为显示数据(item项)的控件,在此例子中即为ListView;第三个参数为点击项的位置,
  public void onItemClick(AdapterView? parent, View arg1, int position,long arg3) {
   ListView lview = (ListView) parent;
   // show3()方法对应的处理方法
   // Person person = (Person) lview.getItemAtPosition(position);
   // Toast.makeText(getApplicationContext(),person.getId().toString(),1).show();

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

              // show2()方法对应的处理方法
              // show2方法中,adapter返回的是Cursor,
   // Cursor cursor = (Cursor) lview.getItemAtPosition(position);
   // int personid = cursor.getInt(cursor.getColumnIndex("_id"));
   // Toast.makeText(getApplicationContext(), personid + "", 1).show();

              // show1()方法对应的处理方法
   // show1方法中,adapter返回的是Map,再对Map进行操作取出相应的id值
   HashMapString, Object item = (HashMapString, Object) lview.getItemAtPosition(position);
   int personid = (Integer) item.get("id");
   Toast.makeText(getApplicationContext(), personid + "", 1).show();
  }
 }

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

Android ListView数据绑定显示的三种解决方法

编程语言 网络编程
Android ListView数据绑定显示的三种解决方法

android帮助文档打开慢的三种解决方法

编程语言 网络编程
android帮助文档打开慢的三种解决方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

cad启动很慢的三种解决方法

cad教程 autocad教程 CAD
cad启动很慢的三种解决方法

较长数据无法在Asp页面中取出的三种解决方法

ASP
较长数据无法在Asp页面中取出的三种解决方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

android不同activity之间共享数据解决方法

编程语言 网络编程
android不同activity之间共享数据解决方法

windows 7常见的三种字体问题的解决方法

电脑入门
windows 7常见的三种字体问题的解决方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Android SharedPreferences的使用分析

Android SharedPreferences的使用分析

win7锐捷共享成无线供手机和其他电脑使用的设置

win7锐捷共享成无线供手机和其他电脑使用的设置
下拉加载更多内容 ↓