ListView是Android软件开发中非常重要组件之一,基本上是个软件基本都会使用ListView
列表的显示需要三个元素:
1.ListVeiw 用来展示列表的View。
2.适配器 用来把数据映射到ListView上的中介。
3.数据 具体的将被映射的字符串,图片,或者基本组件。
在android的开发中最Adapter 一共可以分为:
ArrayAdapter<T>,
BaseAdapter,
CursorAdapter,
HeaderViewListAdapter,
ResourceCursorAdapter,
SimpleAdapter,
SimpleCursorAdapter,
WrapperListAdapter
软件开发中最常用的有ArrayAdapter<T>,BaseAdapter,SimpleAdapter 三种
注:当然还可以用自定义的适配器继承字BaseAdapter。
此处以最简单的ArrayAdapter<T>为例写一个简单的ListView:
其中ListView布局activity_listview_layout.xml文件如下:
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/listsview" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> </LinearLayout></span>
Java代码ListViewActivity如下:
<span style="font-size:18px;">package com.sc.android.ui.listview; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import com.sc.android.R; public class ListsViewActivity extends Activity { private String[] array = { "线型布局", "相对布局", "单帧布局", "表格布局", "网格布局", "单选,多选布局", "传参练习" }; private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listview_layout); mListView = (ListView) findViewById(R.id.listsview); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.test_list_item, array); // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, // R.layout.list_textview, array); mListView.setAdapter(adapter); } } </span>
上面代码中注释掉的是引用自定义的单个的View对象布局,而android引用的是系统自带的布局。
自定义TextView布局list_textview.xml如下:
<span style="font-size:18px;">package com.sc.android.ui.listview; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import com.sc.android.R; public class ListsViewActivity extends Activity { private String[] array = { "线型布局", "相对布局", "单帧布局", "表格布局", "网格布局", "单选,多选布局", "传参练习" }; private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listview_layout); mListView = (ListView) findViewById(R.id.listsview); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.test_list_item, array); // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, // R.layout.list_textview, array); mListView.setAdapter(adapter); } } </span>
以上2种引用布局效果分别如下:
系统布局(无法改变其格式):
自定义布局: