Android - 点击未被调用的列表视图

时间:2013-12-18 22:30:25

标签: android listview focus onitemclicklistener

我的Android应用程序有一个列表视图。该列表视图有很多项。目标是调用一个意图,但根据te项目给它一个不同的额外。

我遇到的问题是,当我点击任何项目时,我会看到黄色突出显示,但是没有调用点击。我研究了一下,我知道它与布局有关,点击了两个文本视图,而不是菜单项,但我不知道如何解决这个问题。

我尝试在所有内容上使用android:focusable="false"android:clickable="false",但它并没有解决我的问题。

lvRoot.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            Intent intent = new Intent(getApplicationContext(), Word.class);
            intent.putExtra("INDEX",
                    MainActivity.getSearchResultsIndex()[arg2]);
            startActivity(intent);
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
        }
    });

这是菜单项的xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/menuItem"
android:layout_width="fill_parent"
android:layout_height="70dp"
android:clickable="false"
android:focusable="false"
android:orientation="horizontal"
tools:context=".Search" >

<TextView
    android:id="@+id/item1"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight=".5"
    android:clickable="false"
    android:focusable="false"
    android:gravity="center_vertical"
    android:textColor="@android:color/white" />

<TextView
    android:id="@+id/item2"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight=".5"
    android:clickable="false"
    android:focusable="false"
    android:gravity="center_vertical"
    android:textColor="@android:color/white" />

如果您需要我的代码,请提前感谢您的任何帮助,只需说出来。

1 个答案:

答案 0 :(得分:1)

您需要OnItemClickListener而不是OnItemSelectedListener

lvRoot.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id)
    {
        Intent intent = new Intent(getApplicationContext(), Word.class);
        intent.putExtra("INDEX", MainActivity.getSearchResultsIndex()[position]);
        startActivity(intent);
    }

});