简体   繁体   English

ListActivity SimpleAdapter数据无法正确显示

[英]ListActivity SimpleAdapter data not displaying properly

When I run the program the TextView texts in each row are being changed from the default text to nothing. 当我运行程序时,每一行中的TextView文本都从默认文本更改为空。 The data in the HashMaps are not displaying. HashMaps中的数据未显示。

My main application layout(main.xml): 我的主应用程序布局(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>

My list item layout(myrow.xml): 我的列表项布局(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>

My application code(Test.java): 我的应用程序代码(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);
    }
}

If I remember it right, the key for the map should be one of the names , meaning: 如果我没记错的话,地图的键应该是names ,意思是:

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

Here's the full picture 这是全图

    //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};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM