搜索界面中的Android可点击列表项

搜索界面中的Android可点击列表项,android,Android,在我的android应用程序中,我的搜索功能可以正常工作,列表可以正确填充,但项目不能单击。我正在努力让它发挥作用。这是我的代码,有人知道为什么这些项目不能点击吗 private void showResults(String query) { Cursor cursor = DBHelper.searchDB(query); startManagingCursor(cursor); String[] searchFrom = new String[] { DBA

在我的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 ----

}
根据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 ----
/---单击列表项---
AdapterView clickList=getListView();
clickList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
}
});
//---结束单击列表项----

在我看来,既然
setOnItemClickListener
中没有对
记录的引用,它就不会工作了?

试试这个。在方法
setOnItemClickListener()
中,在
OnItemClickListener
之前删除
AdapterView
。或者将
AdapterView
替换为simple
View
如果在
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!");
    }
});
ListView单击列表=getListView();
clickList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
Log.v(“Test”,“用鼠标单击一行!”);
}
});

查看日志以了解这些消息。

您的项目是什么?我们可以看到record_2布局吗?是否在
record_2.xml
中的任何位置使用
onClick
clickable
focusable
等属性?如果您这样做,行布局将吸收触摸事件,您的
OnItemClickListener
将永远不会被调用…Sam,不,我不使用这些,它们是非常标准的文本视图。例如:
有趣的是,您在
onItemClick()方法中尝试了什么?您是否尝试过一些简单的方法,如
Log.v(“Test”,“用鼠标单击了一行!”)?感谢您的建议,但没有效果,列表项仍然无法单击。我尝试了
ListView clickList=getListView();clickList.setOnItemClickListener(新建OnItemClickListener(){
ListView clickList=getListView();clickList.setOnItemClickListener(新建ListView.OnItemClickListener()){
两者都不起作用,没有效果,仍然不可单击。是
AdapterView
类的一部分,调用
视图。OnItemClickListener
将不起作用。另外,只调用
new OnItemClickListener()
new AdapterView.OnItemClickListener()之间的主要区别是
限制了您导入的文件,它们指向同一个类。非常感谢!您的代码工作正常!我将其从Log.v更改为Toast,以便查看它是否在我的手机上工作-确实如此!谢谢Sam!
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!");
    }
});