我一直在玩这个列表活动教程:
http://developer.android.com/resources/tutorials/views/hello-listview.html
它告诉你开始扩展List活动.
- by public class Main extends ListActivity {
这是基于对textview only布局进行充气.
- <?xml version="1.0" encoding="utf-8"?>
- <TextView xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="10dp"
- android:textSize="16sp" >
- </TextView>
如果我想通过添加图像以及列表适配器上方的额外线性布局来更多地自定义布局,那么可以使用此方法 – 如果是这样,我该怎么做?
解决方法
可以使用
SimpleAdapter
.
这是一个例子:
- // Create the item mapping
- String[] from = new String[] { "title","description" };
- int[] to = new int[] { R.id.title,R.id.description };
现在“title”映射到R.id.title,“description”映射到R.id.description(在下面的XML中定义).
- // Add some rows
- List<HashMap<String,Object>> fillMaps = new ArrayList<HashMap<String,Object>>();
- HashMap<String,Object> map = new HashMap<String,Object>();
- map.put("title","First title"); // This will be shown in R.id.title
- map.put("description","description 1"); // And this in R.id.description
- fillMaps.add(map);
- map = new HashMap<String,"Second title");
- map.put("description","description 2");
- fillMaps.add(map);
- SimpleAdapter adapter = new SimpleAdapter(this,fillMaps,R.layout.row,from,to);
- setListAdapter(adapter);
这是相应的XML布局,这里名为row.xml:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <TextView
- android:id="@+id/title"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceMedium" />
- <TextView
- android:id="@+id/description"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall" />
- </LinearLayout>
我使用了两个TextView,但它对任何类型的视图都一样.