我一直在玩这里的列表活动教程:
http://developer.android.com/resources/tutorials/views/hello-listview.html
告诉您开始扩展List活动。
by public class Main extends ListActivity {
这是基于对仅文本视图布局进行充气。
<?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>
如果我想通过添加图像以及列表适配器上方的额外线性布局来更多地自定义布局,是否可以使用此方法 - 如果是这样,我该怎么做?
答案 0 :(得分:15)
可以使用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, Object>();
map.put("title", "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,但它对任何类型的视图都一样。