0

在我的 android 应用程序中,我的搜索功能有效,列表被正确填充,但项目不可点击。我正在努力让它发挥作用。这是我的代码,任何人都可以看到为什么这些项目不可点击?

    private void showResults(String query) {
    Cursor cursor = DBHelper.searchDB(query);
    startManagingCursor(cursor);
    String[] searchFrom = new String[] { DBAdapter.KEY_TITLE,
            DBAdapter.KEY_YEAR, DBAdapter.KEY_MAKE,
            DBAdapter.KEY_MODEL };
    int[] displayHere = new int[] { R.id.rTitleTV, R.id.rYearTV,
            R.id.rMakeTV, R.id.rModelTV };
    SimpleCursorAdapter records = new SimpleCursorAdapter(this,
            R.layout.record_2, cursor, searchFrom, displayHere);
    setListAdapter(records);
    DBHelper.close();

    // --- Click on list item ---

    ListView clickList = getListView();
    clickList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub

                }
            });

    // --- END click on list item ----

}

我只想让 onClick 工作,我不在乎它现在什么都不做。稍后我会添加该功能。


一个例子record_2.xml

<TextView 
    android:id="@+id/rMakeTV" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="5dp" 
    android:text="Make" 
    android:textColor="#000000" 
    android:textSize="16dp" 
    android:textStyle="bold" > 

</TextView>

根据 Sam 所指出的,我已经尝试过了,但列表项仍然不可点击。

        // --- Click on list item ---

    AdapterView<?> clickList = getListView();
    clickList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub

                }
            });

    // --- END click on list item ----

在我看来,由于没有引用recordsListAdapter ,setOnItemClickListener它不会工作吗?

4

2 回答 2

0

试试这个。在方法中删除AdapterView之前。或者用简单的替换OnItemClickListenersetOnItemClickListener()AdapterViewView

于 2012-09-22T16:44:47.997 回答
0

你没有在你的onItemClick()方法中做任何事情,你怎么知道它是否工作(除非你使用调试器)?由于您的代码看起来不错,请尝试以下简单的操作:

ListView clickList = getListView();
clickList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        Log.v("Test", "A row was clicked with OnItemClick!");
    }
});

观察您的 logcat 以获取这些消息。

于 2012-09-22T17:46:58.800 回答