ListActivity SimpleAdapter数据无法正常显示

时间:2011-09-15 11:34:51

标签: java android hashmap listactivity simpleadapter

当我运行程序时,每行中的TextView文本将从默认文本更改为空。 HashMaps中的数据未显示。

我的主要应用程序布局(main.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
     android:layout_height="fill_parent">

    <ListView  
        android:id="@android:id/list"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"/>

     <TextView android:id="@android:id/empty"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Empty"/>
</LinearLayout>

我的列表项布局(myrow.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView android:id="@+id/item1"
        android:text="row_id"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"/>

    <TextView android:id="@+id/item2"
        android:text="row_id"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"/>
</LinearLayout>

我的应用程序代码(Test.java):

public class Test extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //main list
        ArrayList<HashMap<String, String>> list = 
            new ArrayList<HashMap<String, String>>();

        //data stored in maps and maps added to list
        HashMap<String, String> temp = new HashMap<String, String>();
        temp.put("Name", "test");
        list.add(temp);

        HashMap<String, String> temp2 = new HashMap<String, String>();
        temp2.put("Name1", "test1");
        list.add(temp2);

        String[] names = {"item1", "item2"};
        int[] locations = {R.id.item1, R.id.item2};

        SimpleAdapter adapter = new SimpleAdapter
            (this, list, R.layout.myrow, names, locations);
        setListAdapter(adapter);
    }
}

1 个答案:

答案 0 :(得分:1)

如果我没记错,地图的关键字应该是names之一,意思是:

temp.put("Name", "test");
...
String[] names = {"Name", "item2"};

这是完整的图片

    //data stored in maps and maps added to list
    HashMap<String, String> temp = new HashMap<String, String>();
    temp.put("Name", "test1");//first column
    temp.put("Name1", "test1");//second column
    list.add(temp);

    HashMap<String, String> temp2 = new HashMap<String, String>();
    temp2.put("Name", "test2");//first column
    temp2.put("Name1", "test2");//second column
    list.add(temp2);

    String[] names = {"Name", "Name1"};
    int[] locations = {R.id.item1, R.id.item2};