ListView总结

来源:互联网 发布:环保监测数据 编辑:程序博客网 时间:2024/05/24 02:15

ListView总结



列表分为三种:ArrayAdapterSimpleAdapterSimpleCursorAdapter


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

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

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

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

列表的形式展示出来。


1.ArrayAdapter

      1.1ArrayAdapter实现步骤

a)创建ArrayAdapter

b)调用setAdapter设置adapter

c)调用setContentView显示


      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

      2.1SimpleCursorAdapter实现步骤

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

b)创建SimpleCursorAdapter对象

c)调用setAdapter设置adapter

d)调用setContentView显示


      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>

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


      2.3SimpleCursorAdapter实现效果





3.SimpleAdapter

      3.1SimpleAdapter实现步骤

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

b)创建simpleAdapter

c)实现getData()方法


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


      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;

}



      3.3SimpleAdapter实现效果