ListView总结

ListView总结



列表分为三种:ArrayAdapterSimpleAdapterSimpleCursorAdapter


ArrayAdapter最为简单,只能展示一行字。

SimpleAdapter有最好的扩充性,可以自定义出各种效果。可以放上ImageView(图片),还可以放上

Button(按钮),CheckBox(复选框)等等。

SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方便的把数据库的内容以

列表的形式展示出来。


1.ArrayAdapter

    1. 1.1ArrayAdapter实现步骤

a)创建ArrayAdapter

b)调用setAdapter设置adapter

c)调用setContentView显示


    1. 1.2ArrayAdapter实现代码

publicclassListViewActivityextendsActivity {

/**Called when the activity is first created. */

privateListViewlistView;

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

String[]strs={"JAVA","C","C++"};


listView=newListView(this);

listView.setAdapter(newArrayAdapter<String>(this,

android.R.layout.simple_expandable_list_item_1,strs));

setContentView(listView);

}


}

1.3ArrayAdapter实现效果




2.SimpleCursorAdapter

    1. 2.1SimpleCursorAdapter实现步骤

a)调用getContentResolver).Query获得Cursor对象

b)创建SimpleCursorAdapter对象

c)调用setAdapter设置adapter

d)调用setContentView显示


    1. 2.2SimpleCursorAdapter实现代码

publicclassListViewActivityextendsActivity {

/**Called when the activity is first created. */

privateListViewlistView;

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

listView=newListView(this);

Cursorcursor = getContentResolver().query(

People.CONTENT_URI,null,null,null,null);

startManagingCursor(cursor);

ListAdapterlistAdapter=newSimpleCursorAdapter(this,

android.R.layout.simple_expandable_list_item_1,

cursor,

newString[]{People.NAME},

newint[]{android.R.id.text1});

listView.setAdapter(listAdapter);

setContentView(listView);

}

}


PS:

需要在AndroidManifest.xml中设置权限

<uses-permissionandroid:name="android.permission.READ_CONTACTS"></uses-permission>

并且需要在电话本中添加联系人。


    1. 2.3SimpleCursorAdapter实现效果





3.SimpleAdapter

    1. 3.1SimpleAdapter实现步骤

a)定义一个用来显示每一个行内容的xml

b)创建simpleAdapter

c)实现getData()方法


ps:使用simpleAdapter的数据用一般都是HashMap构成的Listlist的每一节对应ListView的每一行。


    1. 3.2SimpleAdapter实现代码

      vlist.xml代码

<?xmlversion="1.0"encoding="UTF-8"?>


<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="horizontal"android:layout_width="fill_parent"

android:layout_height="fill_parent">


<ImageViewandroid:id="@+id/img"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_margin="5px"/>

<LinearLayoutandroid:orientation="vertical"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

<TextViewandroid:id="@+id/title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#FFFFFFFF"

android:textSize="22px"/>

<TextViewandroid:id="@+id/info"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#FFFFFFFF"

android:textSize="13px"/>

</LinearLayout>



</LinearLayout>



ListViewActivity.java代码

publicclassListViewActivityextendsListActivity {

/**Called when the activity is first created. */

privateListViewlistView;

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

SimpleAdapteradapter=newSimpleAdapter(this,getData(),

R.layout.vlist,

newString[]{"title","info","img"},

newint[]{R.id.title,R.id.info,R.id.img});

setListAdapter(adapter);


}

privateList<Map<String, Object>> getData() {

//TODOAuto-generated method stub

List<Map<String,Object>>list=new

ArrayList<Map<String,Object>>();

Map<String,Object> map=newHashMap<String,Object>();

map.put("title","G1");

map.put("info","google 1");

map.put("img",R.drawable.i1);

list.add(map);

map=newHashMap<String,Object>();

map.put("title","G2");

map.put("info","google 2");

map.put("img",R.drawable.i2);

list.add(map);

map=newHashMap<String,Object>();

map.put("title","G3");

map.put("info","google 3");

map.put("img",R.drawable.i3);

list.add(map);

returnlist;

}



    1. 3.3SimpleAdapter实现效果


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值