专注移动互联网.docx

上传人:b****3 文档编号:3453288 上传时间:2022-11-23 格式:DOCX 页数:24 大小:268.20KB
下载 相关 举报
专注移动互联网.docx_第1页
第1页 / 共24页
专注移动互联网.docx_第2页
第2页 / 共24页
专注移动互联网.docx_第3页
第3页 / 共24页
专注移动互联网.docx_第4页
第4页 / 共24页
专注移动互联网.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

专注移动互联网.docx

《专注移动互联网.docx》由会员分享,可在线阅读,更多相关《专注移动互联网.docx(24页珍藏版)》请在冰豆网上搜索。

专注移动互联网.docx

专注移动互联网

专注移动互联网

分类:

android游戏与软件开发锦集2011-07-2623:

173471人阅读评论(33)收藏举报

Android软件开发之ListView详解

雨松MOMO原创文章如转载,请注明:

转载自雨松MOMO的博客原文地址:

ListView的使用方法

ListView是Android软件开发中非常重要组件之一,基本上是个软件基本都会使用ListView,今天我通过一个demo来教大家怎么样使用ListView组件绘制出漂亮的列表,说道ListView就不得不说Adapter适配器,因为只有通过Adapter才可以把列表中的数据映射到ListView中。

在android的开发中最Adapter一共可以分为

 ArrayAdapter,

 BaseAdapter,

CursorAdapter,

 HeaderViewListAdapter,

 ResourceCursorAdapter,

 SimpleAdapter,

 SimpleCursorAdapter,

 WrapperListAdapter

软件开发中最常用的有ArrayAdapter, BaseAdapter, SimpleAdapter,今天我用一段代码向大家诠释如何使用ListView控件。

1.简单的ListView

      在List列表中如果不存在过于复杂的东西我们可以直接去newArrayAdapter()来绘制列表,无须继承ArrayAdapter,重写它的方法。

但是如果列表中过于复杂的话就需要使用自定义布局来实现List列表。

1.public class SimpleList extends ListActivity {  

2.    private String[] mListStr = {"姓名:

雨松MOMO","性别:

男","年龄:

25","居住地:

北京","邮箱:

xuanyusong@"};  

3.    ListView mListView = null;  

4.    @Override  

5.    protected void onCreate(Bundle savedInstanceState) {  

6.    mListView = getListView();  

7.    setListAdapter(new ArrayAdapter(this,  

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

9.    mListView.setOnItemClickListener(new OnItemClickListener() {  

10.        @Override  

11.        public void onItemClick(AdapterView

> adapterView, View view, int position,  

12.            long id) {  

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

14.        }  

15.    });  

16.  

17.    super.onCreate(savedInstanceState);  

18.    }  

19.}  

2.带标题的ListView列表

     使用simpleAdapter需要注意的是须要用Mapitem来保存列表中每一项的显示的title与text,newSimpleAdapter的时候将map中的数据写入,程序就会帮我们绘制列表了。

1.public class TitleList extends ListActivity {  

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

3.    private String[] mListStr = { "雨松MOMO", "男", "25", "北京",  

4.        "xuanyusong@" };  

5.    ListView mListView = null;  

6.    ArrayList> mData= new ArrayList>();;  

7.  

8.    @Override  

9.    protected void onCreate(Bundle savedInstanceState) {  

10.    mListView = getListView();  

11.        

12.    int lengh = mListTitle.length;  

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

14.        Map item = new HashMap();  

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

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

17.        mData.add(item);   

18.    }  

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

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

21.        setListAdapter(adapter);  

22.    mListView.setOnItemClickListener(new OnItemClickListener() {  

23.        @Override  

24.        public void onItemClick(AdapterView

> adapterView, View view, int position,  

25.            long id) {  

26.        Toast.makeText(TitleList.this,"您选择了标题:

" + mListTitle[position] + "内容:

"+mListStr[position], Toast.LENGTH_LONG).show();  

27.        }  

28.    });  

29.    super.onCreate(savedInstanceState);  

30.    }  

31.}  

3.带图片的ListView列表

       使用simpleAdapter来操作但是构造simpleAdapter的时候须要使用我们自己写的布局来完成,因为系统的布局已经不能满足需求了,同样Mapitem来保存列表中每一项须要的显示内容如图片标题内容等。

添加我们自己的列表布局图片标题内容

1.

xml version="1.0" encoding="utf-8"?

>  

2.  

3.

android="  

4.    android:

layout_width="fill_parent" android:

layout_height="?

android:

attr/listPreferredItemHeight">  

5.    

id="@+id/image"  

6.        android:

layout_width="wrap_content" android:

layout_height="fill_parent"  

7.        android:

layout_alignParentTop="true" android:

layout_alignParentBottom="true"  

8.        android:

adjustViewBounds="true"  

9.        android:

padding="2dip" />  

10.    

id="@+id/title"  

11.        android:

layout_width="wrap_content" android:

layout_height="wrap_content"  

12.        android:

layout_toRightOf="@+id/image"  

13.        android:

layout_alignParentRight="true" android:

layout_alignParentTop="true"  

14.        android:

layout_above="@+id/text"  

15.        android:

layout_alignWithParentIfMissing="true" android:

gravity="center_vertical"  

16.        android:

textSize="15dip" />  

17.    

id="@+id/text"  

18.        android:

layout_width="fill_parent" android:

layout_height="wrap_content"  

19.        android:

layout_toRightOf="@+id/image"  

20.        android:

layout_alignParentBottom="true"  

21.        android:

layout_alignParentRight="true" android:

singleLine="true"  

22.        android:

ellipsize="marquee"   

23.        android:

textSize="20dip" />  

24.  

1.public class IconList extends ListActivity {  

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

3.    private String[] mListStr = { "雨松MOMO", "男", "25", "北京",  

4.        "xuanyusong@" };  

5.    ListView mListView = null;  

6.    ArrayList> mData= new ArrayList>();;  

7.  

8.    @Override  

9.    protected void onCreate(Bundle savedInstanceState) {  

10.    mListView = getListView();  

11.        

12.    int lengh = mListTitle.length;  

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

14.        Map item = new HashMap();  

15.        item.put("image", R.drawable.jay);  

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

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

18.        mData.add(item);   

19.    }  

20.    SimpleAdapter adapter = new SimpleAdapter(this,mData,R.layout.iconlist,  

21.        new String[]{"image","title","text"},new int[]{R.id.image,R.id.title,R.id.text});  

22.        setListAdapter(adapter);  

23.    mListView.setOnItemClickListener(new OnItemClickListener() {  

24.        @Override  

25.        public void onItemClick(AdapterView

> adapterView, View view, int position,  

26.            long id) {  

27.        Toast.makeText(IconList.this,"您选择了标题:

" + mListTitle[position] + "内容:

"+mListStr[position], Toast.LENGTH_LONG).show();  

28.        }  

29.    });  

30.    super.onCreate(savedInstanceState);  

31.    }  

32.}  

4.自定义布局BaseAdapter修改列表颜色

      因为通过直接构造系统的布局来绘制列表方法肯定是有限的,所以我们需要重写绘制方法,写一个类去继承BaseAdapter并实现这个类中的方法,listView在一开始绘制的时候首先会调用getCout()方法得到绘制次数,然后会实例化自己定义的BaseAdapter通过getView()方法一层一层绘制ListView,所以我们可以在这里面根据position(当前绘制的ID)来任意的修改绘制的内容,做出好看漂亮的ListView,下面这个例子我通过重写getView修改每个列表的颜色并且实现用户选中后成高亮状态。

1.

xml version="1.0" encoding="utf-8"?

>  

2.  

3.

android="  

4.    android:

layout_width="fill_parent" android:

layout_height="wrap_content">  

5.    

id="@+id/color_image"  

6.        android:

layout_width="wrap_content" android:

layout_height="fill_parent"  

7.        android:

layout_alignParentTop="true" android:

layout_alignParentBottom="true"  

8.        android:

adjustViewBounds="true"  

9.        android:

padding="2dip" />  

10.    

id="@+id/color_title"  

11.        android:

layout_width="fill_parent" android:

layout_height="wrap_content"  

12.        android:

layout_toRightOf="@+id/color_image"  

13.        android:

layout_alignParentBottom="true"  

14.        android:

layout_alignParentRight="true" android:

singleLine="true"  

15.        android:

ellipsize="marquee"   

16.        android:

textSize="15dip"  />  

17.    

id="@+id/color_text"  

18.        android:

layout_width="fill_parent" android:

layout_height="wrap_content"  

19.        android:

layout_toRightOf="@+id/color_image"  

20.        android:

layout_below="@+id/color_title"  

21.        android:

layout_alignParentBottom="true"  

22.        android:

layout_alignParentRight="true"   

23.        android:

singleLine="true"  

24.        android:

ellipsize="marquee"   

25.        android:

textSize="20dip" />  

26.  

27.  

28.   

1.public class ColorList extends ListActivity {  

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

3.    private String[] mListStr = { "雨松MOMO", "男", "25", "北京",  

4.        "xuanyusong@" };  

5.    ListView mListView = null;  

6.    MyListAdapter myAdapter = null;  

7.    @Override  

8.    protected void onCreate(Bundle savedInstanceState) {  

9.    mListView = getListView();  

10.    myAdapter = new MyListAdapter(this);  

11.    setListAdapter(myAdapter);  

12.    mListView.setOnItemClickListener(new OnItemClickListener() {  

13.        @Override  

14.        public void onItemClick(AdapterView

> adapterView, View view, int position,  

15.            long id) {  

16.        View v=adapterView.getChildAt(position);  

17.        v.setBackgroundColor(Color.RED);  

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

19.        }  

20.    });  

21.      

22.    super.onCreate(savedInstanceState);  

23.    }  

24.  

25.    class MyListAdapter extends BaseAdapter {  

26.    private int[] colors = new int[] { 0xff626569, 0xff4f5257 };  

27.    public MyListAdapter(Context context) {  

28.        mContext = context;  

29.    }  

30.  

31.    public int getCount() {  

32.        return mListStr.length;  

33.    }  

34.  

35.    @Override  

36.    public boolean areAllItemsEnabled() {  

37.        return false;  

38.    }  

39.  

40.    public Object getItem(int position) {  

41.        return position;  

42.    }  

43.  

44.    public long getItemId(int position) {  

45.        return

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1