1.基于数组的ListView:
在布局文件中这么写:
<!-- 设置使用红色的分隔条 --> <!-- 使用数组资源给出列表 --> <ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="#f00" android:dividerHeight="2px" android:entries="@array/books" android:headerDividersEnabled="false" />
2.使用ArrayAdapter创建ListView:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, resource, objects)
三个参数:
Contex:上下文
resource:一个资源ID,该ID代表一个TextView,该TextView组件将作为ArrayAdapter的列表组件。
objects:数组或list:为多个列表提供数据
例:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
/**
* ArrayAdapter演示
*
* @author Caesar
*
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView mlistView = (ListView) findViewById(R.id.listview);
String textArray[] = { "功能1", "功能2", "功能3", "功能4", "功能5", "功能6", "功能7",
"功能8", "功能8", "功能8", "功能8", "功能8", "功能8", "功能8", "功能8", "功能8",
"功能8", "功能8", "功能8", "功能8" };
/**
* 定义数据适配器
*
*
* android.R.layout.simple_list_item_1:ListView的子条目显示的布局的ID
*
* textArray:显示在list中的数据
*
*/
// ArrayAdapter<String> adapter2 = new ArrayAdapter<>(context, resource, objects)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, textArray);
mlistView.setAdapter(adapter);
}
}3.使用SimpleAdapter创建ListView:
SimpleAdapter simpadapter = new SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to);
例:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView mlistView = (ListView) findViewById(R.id.listview);
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "张三1");
map.put("icon", R.drawable.qq1);
data.add(map);
map = new HashMap<String, Object>();
map.put("name", "张三2");
map.put("icon", R.drawable.qq1);
data.add(map);
map = new HashMap<String, Object>();
map.put("name", "张三3");
map.put("icon", R.drawable.qq1);
data.add(map);
map = new HashMap<String, Object>();
map.put("name", "张三4");
map.put("icon", R.drawable.qq1);
data.add(map);
map = new HashMap<String, Object>();
map.put("name", "张三5");
map.put("icon", R.drawable.qq1);
data.add(map);
map = new HashMap<String, Object>();
map.put("name", "张三2");
map.put("icon", R.drawable.qq1);
data.add(map);
map = new HashMap<String, Object>();
map.put("name", "张三3");
map.put("icon", R.drawable.qq1);
data.add(map);
map = new HashMap<String, Object>();
map.put("name", "张三4");
map.put("icon", R.drawable.qq1);
data.add(map);
map = new HashMap<String, Object>();
map.put("name", "张三5");
map.put("icon", R.drawable.qq1);
data.add(map);
// public SimpleAdapter(Context context, List<? extends Map<String, ?>>
// data, int resource, String[] from, int[] to) {
SimpleAdapter adapter = new SimpleAdapter(this, // 上下文对象
data, // listview绑定的数据
R.layout.listview_item, // 子条目的布局的id
new String[] { "name", "icon" },// String[] 类型 data中的map集合里的key
new int[] { R.id.tv_name, R.id.iv_icon });// resource 中的id
mlistView.setAdapter(adapter);
}
}
4.让Activity去继承ListActivity:
如果程序的窗口只需要显示一个列表,则可以直接让Activity继承ListAactivity来实现。
ListActivity的子类无需setContentView()方法来显示某个界面,
而是直接传入一个内容Adapter,ListActivity的子类就呈现出一个表。
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
/**
* 如果程序的窗口只需要显示一个列表,则可以直接让Activity继承ListAactivity来实现。
* ListActivity的子类无需setContentView()方法来显示某个界面,
* 而是直接传入一个内容Adapter,ListActivity的子类就呈现出一个表。
*
* @author Caesar
*
*/
public class MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String arr[] = { "孙悟空", "猪八戒", "唐僧", "沙和尚" };
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_multiple_choice, arr);
setListAdapter(adapter);
}
}
原文:http://blog.csdn.net/u013476556/article/details/45699503