setOnItemClickListener没有被调用

时间:2012-11-02 18:54:11

标签: android

我在onCreate方法中有如下内容:

    ListView lv = (ListView)findViewById(android.R.id.list);
   adapter = new ModuleAdapter(this);
   lv.setAdapter(adapter);
   lv.setOnItemClickListener(this);

然后在代码中:

    @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // TODO Auto-generated method stub
    Log.v(TAG, "clicked");

}

正在实施OnItemClickListener。

我正在尝试从onItemClick启动一个新活动,但它似乎没有工作。

Android新手并不知道很多java。有人可以帮忙吗?感谢。

3 个答案:

答案 0 :(得分:0)

ListView lv =(ListView)findViewById(android.R.id.list); - 如果你试图获得android系统资源,但是你想要在xml布局上描述的listview。

让我们说它看起来像:

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

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

</LinearLayout>

因此您需要将代码更改为

ListView lv =(ListView)findViewById(R.id.listView1);

有些人解释说: android.R - 它是Android OS的默认资源 - llike按钮,图像,listview项目布局等。 R. - 它'你的项目资源完整路径喜欢[你的包路径] .R例如:com.example.R

答案 1 :(得分:0)

您是否在您的布局中将FocusableInTouchMode设置为true?如果是这样,则不会调用onItemClick。

答案 2 :(得分:0)

在xxx_row.xml中尝试此更改

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:enabled="false">
</TextView>

至少对我而言,当我更改宽度和启用属性时它才起作用。