Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法使用键盘输入键单击listView中的项_Android_Listview_Onitemclicklistener - Fatal编程技术网

Android 无法使用键盘输入键单击listView中的项

Android 无法使用键盘输入键单击listView中的项,android,listview,onitemclicklistener,Android,Listview,Onitemclicklistener,我正在尝试使用键盘在listView中导航。正常情况下,进入按钮在其他控件上工作。但当我选择和项(使用键盘)并按enter键时,它不起作用 我正在getView中使用setOnKeyListener。 这是我的适配器类的代码。 CustomUsersAdapter类,它扩展了ArrayAdapter类 public View getView(int position, View convertView, ViewGroup parent) { if (convertView =

我正在尝试使用键盘在listView中导航。正常情况下,进入按钮在其他控件上工作。但当我选择和项(使用键盘)并按enter键时,它不起作用

我正在getView中使用setOnKeyListener。 这是我的适配器类的代码。 CustomUsersAdapter类,它扩展了ArrayAdapter类

public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_user, parent, false);
        }
        convertView.setClickable(true);
        convertView.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View view, int i, KeyEvent keyEvent) {
                this.onClicked("onKeyListener");
                return true;
            }
        });

        convertView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                this.onClicked("setOnClickListener");
            }
        });
        return convertView;
    }
}

未调用OnClickListener中的onClick或OnKeyListener。

您正在适配器中将OnClickListener设置为其根视图。您应该尝试将这些侦听器设置为listview对象。例如,

      listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        }
    });
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
}
});

您正在适配器中将onClickListener设置为其根视图。您应该尝试将这些侦听器设置为listview对象。例如,

      listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        }
    });
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
}
});

是的,这很有效。但是,您是否了解为什么适配器返回的视图上的setOnClickListener集不起作用?但当我使用touchevent而不是键盘的enter键时,同样的事情也会发生。不确定,但它可能与listView项的根视图相关。如何使用键盘导航listview?listview可聚焦且可单击吗?您在这里对listview项的根视图有何要求?您是指适配器返回的视图的根吗?我对列表项使用简单的listView,下面是一个示例。另外,在从AdapterOrry的getView返回之前,我尝试将列表项视图设置为可聚焦和可单击。我不知道如何在此处设置格式。是的,可以。但是,您是否了解为什么适配器返回的视图上的setOnClickListener集不起作用?但当我使用touchevent而不是键盘的enter键时,同样的事情也会发生。不确定,但它可能与listView项的根视图相关。如何使用键盘导航listview?listview可聚焦且可单击吗?您在这里对listview项的根视图有何要求?您是指适配器返回的视图的根吗?我对列表项使用简单的listView,下面是一个示例。在从Adapter的getView返回之前,我还尝试将列表项视图设置为可聚焦和可单击。我不知道如何在此处设置格式