ListView:your 内容必须有一个 id 属性为 "android.R.id.list" 的列表视图

ListView:your content must have a listview whose id attribute is "android.R.id.list"

我遇到了 ListView.My activity inherit ListView 的问题,它具有 android:id="@android:id/list" 值 set.I 搜索解决方案,但它没有用。 这是我的配置文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <ListView 
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="false"
        android:scrollbars="vertical"></ListView>
</LinearLayout>

我的 OnCreate 在这里:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_view_demo);
    listView = getListView();
    ArrayList<HashMap<String, String>> list = 
            new ArrayList<HashMap<String, String>>();
    HashMap<String, String> map1 = new HashMap<String,String>();
    HashMap<String, String> map2 = new HashMap<String,String>();
    HashMap<String, String> map3 = new HashMap<String,String>();
    map1.put("user_ip", "user_name");
    map1.put("192.168.25.3", "Maple");
    map2.put("user_ip", "user_name");
    map2.put("192.168.34.3", "Sonny");
    map3.put("user_ip", "user_name");
    map3.put("192.168.25.12", "Eric");
    list.add(map1);
    list.add(map2);
    list.add(map3);

    SimpleAdapter simpleAdapter = new SimpleAdapter(this, list,
            R.layout.user,
            new String[]{"user_ip", "user_name"}, 
            new int[]{R.id.user_ip, R.id.user_name});
    this.setListAdapter(simpleAdapter);
}   

有人帮忙吗?

你初始化的方式 listView 是错误的。

改变,

private ListView listView = getListView();

ListView listView = (ListView) findViewById(R.id.list);

如果您设置 contentView,则不需要将 activity 扩展到 ListActivity

getListView() 是 ListFragment/ListActivity 的特定方法,您使用其中之一吗? 删除:

listView = getListView();