1

我制作了一个自定义列表视图。现在我想为列表视图添加onitemclick方法,但为此它需要在主类中声明列表视图。我的列表视图的 xml 代码如下。

   <ListView
   android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView8"
   >

</ListView> 

如果我以android:id="@+id/list"之类的格式更改 id,那么我的应用程序崩溃.. 所以建议我应该怎么做才能解决它?

4

3 回答 3

1

只是findViewById(android.R.id.list);用来获取ListView

于 2013-05-09T08:49:59.073 回答
1

如果我以 android:id="@+id/list" 之类的格式更改 id,那么我的应用程序崩溃

因为如果您在 xml 中使用 id 声明了 ListVIew,@+id/android:list那么您将需要android.R.id.list用于初始化 ListView 实例。在主类中执行以下操作:

ListView listview = (ListView) findViewById(android.R.id.list);

或者如果你正在扩展 ListActivity 那么你也可以使用getListView()初始化 ListView 实例的方法

ListView listview = Current_Activity_Name.this..getListView();  
于 2013-05-09T08:47:31.470 回答
0

你必须声明

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

那么你必须做

ListView v = (ListView)findViewById(R.id.listView1)

接着

v.setOnItemClick(new onItemClickListener(){

     public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {

     }

});

我认为你不应该使用"@android:id/list"

于 2013-05-09T08:53:18.827 回答