Android培训三十二课第十一讲

来源:互联网 发布:ubuntu sudo使用 编辑:程序博客网 时间:2024/04/29 20:06
   Anroid是一种以嵌入式为基础的开放源码操作系统,Android培训第十一讲:系统讲解ListView 

  ListView的使用方法
  ListViewAndroid软件开发中非常重要组件之一,基本上是个软件基本都会使用ListView ,今天我通过一个demo来教大家怎么样使用ListView组件 绘制出漂亮的列表,说道  ListView就不得不说Adapter适配器,因为只有通过Adapter才可以把列表中的数据映射到ListView中。
  在开发中最Adapter 一共可以分为
ArrayAdapter<T>,
BaseAdapter,
CursorAdapter,
HeaderViewListAdapter,
ResourceCursorAdapter,
SimpleAdapter,
SimpleCursorAdapter,
WrapperListAdapter
软件开发中最常用的有ArrayAdapter<T>, BaseAdapter, SimpleAdapter,今天我用一段代码向大家诠释如何使用ListView控件。
1.简单的ListView
     在List列表中如果不存在过于复杂的东西 我们可以直接去new ArrayAdapter() 来绘制列表,无须继承ArrayAdapter,重写它的方法。但是如果列表中过于复杂的话就需要使用自定义布局来实现List列表。

实现代码:

public class SimpleList extends ListActivity {

1     private String[] mListStr = {"姓名:亚嵌教育","性别:男","年龄:25","居住地:北京","邮箱:wh2002lyglb@hotmail.com"};

2     ListView mListView = null;

3     @Override

4     protected void onCreate(Bundle savedInstanceState) {

5         mListView = getListView();

6         setListAdapter(new ArrayAdapter<String>(this,

7                 android.R.layout.simple_list_item_1, mListStr));

8         mListView.setOnItemClickListener(new OnItemClickListener() {

9             @Override

10             public void onItemClick(AdapterView<?> adapterView, View view, int position,

11                     long id) {

12                 Toast.makeText(SimpleList.this,"您选择了" + mListStr[position], Toast.LENGTH_LONG).show();

13             }

14         });

15 

16         super.onCreate(savedInstanceState);

17     }

18 }

2.带标题的ListView列表

使用 simpleAdapter 需要注意的是须要用Map<String,Object> item 来保存列表中每一项的显示的titletext , new SimpleAdapter的时候将map中的数据写入 ,程序就会帮我们绘制列表了。


public class TitleList extends ListActivity {

19     private String[] mListTitle = { "姓名", "性别", "年龄", "居住地","邮箱"};

20     private String[] mListStr = { "亚嵌教育", "", "25", "北京",

21             "akaedu005@hotmail.com " };

22     ListView mListView = null;

23     ArrayList<Map<String,Object>> mData= new ArrayList<Map<String,Object>>();;

24 

25     @Override

26     protected void onCreate(Bundle savedInstanceState) {

27         mListView = getListView();

28       

29         int lengh = mListTitle.length;

30         for(int i =0; i < lengh; i++) {

31             Map<String,Object> item = new HashMap<String,Object>();

32             item.put("title", mListTitle[i]);

33             item.put("text", mListStr[i]);

34             mData.add(item);

35         }

36         SimpleAdapter adapter = new SimpleAdapter(this,mData,android.R.layout.simple_list_item_2,

37                 new String[]{"title","text"},new int[]{android.R.id.text1,android.R.id.text2});

38         setListAdapter(adapter);

39         mListView.setOnItemClickListener(new OnItemClickListener() {

40             @Override

41             public void onItemClick(AdapterView<?> adapterView, View view, int position,

42                     long id) {

43                 Toast.makeText(TitleList.this,"您选择了标题:" + mListTitle[position] + "内容:"+mListStr[position], Toast.LENGTH_LONG).show();

44             }

45         });

46         super.onCreate(savedInstanceState);

47     }

48 }