Android采用ListView实现数据列表显示
2012-01-31 10:21
841 查看
下面是手机上的效果图: 如果是android同行的话,有兴趣就进群里,以后一起排忧解难!(QQ新群:172937753)
要将数据库中的数据列表显示在屏幕上,我们要使用ListView这个控件,当用户从数据库中取出数据时,要将数据绑定到显示控件上,如何绑定呢,我们需要创建适配器进行绑定,创建适配器有两种方式:
第一种是用SimpleAdapter创建(要求绑定的数据是List<HashMap<String, Object>>数据类型)
第二种是用SimpleCursorAdapter创建(要求绑定的数据是Cursor数据类型)
显示效果如图所示:
界面布局:
item.xml
1.<?xml version="1.0" encoding="utf-8"?>
2.<!--item --> 3.<LinearLayout 4. xmlns:Android="http://schemas.android.com/apk/res/android" 5. Android:orientation="horizontal" 6. Android:layout_width="fill_parent" 7. Android:layout_height="fill_parent">
8. <!-- 名称 --> 9. <TextView 10. Android:layout_width="130dp" 11. Android:layout_height="wrap_content" 12. Android:id="@+id/name" 13. /> 14. <!-- 电话 --> 15. <TextView 16. Android:layout_width="150dp" 17. Android:layout_height="wrap_content"
18. Android:id="@+id/phone" 19. /> 20. <!-- 存款 --> 21. <TextView 22. Android:layout_width="fill_parent" 23. Android:layout_height="wrap_content" 24. Android:id="@+id/amount" 25. /> 26.</LinearLayout> main.xml
1.<?xml version="1.0" encoding="utf-8"?>
2.<LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android" 3. Android:orientation="vertical" 4. Android:layout_width="fill_parent" 5. Android:layout_height="fill_parent" 6.
> 7. <!-- 标题 --> 8. <LinearLayout 9. Android:orientation="horizontal" 10. Android:layout_width="fill_parent" 11. Android:layout_height="wrap_content"> 12.
13. <TextView 14. Android:layout_width="130dp" 15. Android:layout_height="wrap_content" 16. Android:text="姓名" 17. /> 18.
19. <TextView 20. Android:layout_width="150dp" 21. Android:layout_height="wrap_content" 22. Android:text="电话" 23. /> 24.
25. <TextView 26. Android:layout_width="fill_parent" 27. Android:layout_height="wrap_content" 28. Android:text="存款" 29. /> 30.
31.</LinearLayout> 32. <!-- ListView控件 --> 33.<ListView 34. Android:layout_width="fill_parent" 35. Android:layout_height="fill_parent" 36. Android:id="@+id/listView" 37. /> 38.</LinearLayout> 使用SimpleAdapter进行数据绑定
1.public class MainActivity extends Activity {
2. private PersonService service;
3. @Override
4. public void onCreate(Bundle savedInstanceState) {
5. super.onCreate(savedInstanceState);
6. setContentView(R.layout.main);
7. service = new PersonService(this); 8. ListView listView = (ListView) this.findViewById(R.id.listView); 9.
10. //获取到集合数据
11. List<Person> persons = service.getScrollData(0, 10); 12. List<HashMap<String, Object>> data = new ArrayList<HashMap<String,Object>>(); 13. for(Person person : persons){
14. HashMap<String, Object> item = new HashMap<String, Object>(); 15. item.put("id", person.getId());
16. item.put("name", person.getName());
17. item.put("phone", person.getPhone());
18. item.put("amount", person.getAmount());
19. data.add(item);
20. }
21. //创建SimpleAdapter适配器将数据绑定到item显示控件上
22. SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item, 23. new String[]{"name", "phone", "amount"}, new int[]{R.id.name, R.id.phone, R.id.amount});
24. //实现列表的显示
25. listView.setAdapter(adapter);
26. //条目点击事件
27. listView.setOnItemClickListener(new ItemClickListener());
28. }
29. //获取点击事件
30. private final class ItemClickListener implements OnItemClickListener{
31.
32. public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 33. ListView listView = (ListView) parent; 34. HashMap<String, Object> data = (HashMap<String, Object>) listView.getItemAtPosition(position);
35. String personid = data.get("id").toString(); 36. Toast.makeText(getApplicationContext(), personid, 1).show();
37. }
38. }
39.}
使用SimpleCursorAdapter进行数据绑定
1.public class MainActivity extends Activity {
2. private PersonService service;
3. @Override
4. public void onCreate(Bundle savedInstanceState) {
5. super.onCreate(savedInstanceState);
6. setContentView(R.layout.main);
7. service = new PersonService(this); 8. ListView listView = (ListView) this.findViewById(R.id.listView); 9. //获取游标
10. Cursor cursor = service.getCursorScrollData(0, 10); 11. //创建SimpleCursorAdapter适配器将数据绑定到item显示控件上
12. SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.item, cursor, 13. new String[]{"name", "phone", "amount"}, new int[]{R.id.name, R.id.phone, R.id.amount});
14. listView.setAdapter(adapter);
15. //条目点击事件
16. listView.setOnItemClickListener(new ItemClickListener());
17. }
18.
19. private final class ItemClickListener implements OnItemClickListener{
20.
21. public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 22. ListView listView = (ListView) parent; 23. Cursor cursor = (Cursor) listView.getItemAtPosition(position); 24. String personid
= String.valueOf(cursor.getInt(cursor.getColumnIndex("_id"))); 25. Toast.makeText(getApplicationContext(), personid, 1).show();
26. }
27. }
28.}
注意:使用第二种方式在获取数据集合时必须指定主键"_id"
相关文章推荐
- Android采用ListView实现数据列表显示
- Android学习_19_采用ListView实现数据列表显示
- Android开发入门之采用ListView实现数据列表显示
- android第十六步采用ListView实现数据列表显示
- Android采用ListView实现数据列表显示
- Android采用ListView实现数据列表显示1-使用SimpleCursorAdapter进行数据绑定
- Android采用ListView实现数据列表显示
- Android采用ListView实现数据列表显示 .
- Android采用ListView实现列表数据的显示--Adapter应用
- Android采用ListView实现数据列表显示
- Android采用ListView实现数据列表显示
- Android采用ListView实现数据列表显示2-使用SimpleAdapter进行数据绑定
- Android采用ListView实现数据列表显示
- Android采用ListView实现数据列表显示
- Android学习笔记---19_采用ListView实现数据列表显示,以及各种适配器使用,和如何写自己的适配器
- 采用ListView实现数据列表显示——SimpleAdapter
- 实例教程八:采用ListView实现数据列表显示
- 采用ListView实现数据列表显示——SimpleCursorAdapter
- 实例教程八:采用ListView实现数据列表显示
- 实例教程八:采用ListView实现数据列表显示