在Android 3.0及更高版本的一个活动中有两个ListView

时间:2012-04-23 23:02:54

标签: android android-listview

在Android 2.12.3中,它运行正常。但对于3.0及以上findViewById,找不到第二个ListView。我已经尝试过清理项目,尝试不使用ListActivity,没有任何帮助。有什么想法吗?

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);
    setListAdapter(List1Adaptor);
    list1 = (ListView) findViewById(android.R.id.list);

    list2 = (ListView) findViewById(R.id.ListView2);
    list2.setAdapter(List2Adapter);//Null Pointer
}

main.xml

<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/linearLayout1"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="vertical" >
 <ListView
     android:id="@+id/ListView2"
     android:layout_height="wrap_content"
     android:layout_width="fill_parent" >
 </ListView>


</LinearLayout>
<RelativeLayout
android:id="@+id/listLayout_relativeLayout2"
android:layout_height="320dp"
android:layout_width="fill_parent" >

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

2 个答案:

答案 0 :(得分:0)

您的布局有android:id="@+id/listView2"(注意:小写'l'),您的Java代码正在请求R.id.ListView2(注意:大写'L')。尝试在两种情况下使用相同的案例。

答案 1 :(得分:0)

您的xml文件缺少根视图。我很惊讶它适用于任何版本的Android。你应该用线性布局或类似的东西包围所有东西。