Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.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_Keyboard - Fatal编程技术网

Android listview中具有多个可聚焦元素的键盘导航

Android listview中具有多个可聚焦元素的键盘导航,android,listview,keyboard,Android,Listview,Keyboard,我有一个Android ListView,它可以包含不同类型的listItem。 某些列表项本身具有多个可聚焦元素。 我正在寻找一种能够使用硬件键盘导航列表的方法,以及能够选择listitem中的可聚焦元素并在其中导航的方法 例如,在下图中,所有listItem都有多个按钮。所以当我打开我的活动时,我应该能够使用键盘上下箭头在listitem中导航 但当我按Enter(或D-PAD)时,焦点应该转到列表项中的第一个按钮。之后,我应该能够通过使用箭头键浏览所有按钮 当我为所有按钮设置focus

我有一个Android ListView,它可以包含不同类型的listItem。 某些列表项本身具有多个可聚焦元素。 我正在寻找一种能够使用硬件键盘导航列表的方法,以及能够选择listitem中的可聚焦元素并在其中导航的方法

例如,在下图中,所有listItem都有多个按钮。所以当我打开我的活动时,我应该能够使用键盘上下箭头在listitem中导航

但当我按Enter(或D-PAD)时,焦点应该转到列表项中的第一个按钮。之后,我应该能够通过使用箭头键浏览所有按钮

当我为所有按钮设置focusable false并在listView本身上设置listView.setItemsCanFocus(false)时,我能够实现第一种情况

在从适配器返回视图,然后在ListListener中处理它们之前,我尝试过设置setFocusable(false)

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {          
                View v = listView.getChildAt(position);
                v.setFocusable(true);
                v.requestFocus();
                Button b1 = (Button)(listView.getChildAt(position).findViewById(R.id.butt1));
                Button b2 = (Button)(listView.getChildAt(position).findViewById(R.id.butt1));                   
                b1.setFocusable(true);
                b2.setFocusable(true);                  
                b1.requestFocus();
            }
    });
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、int位置、长id){
视图v=listView.getChildAt(位置);
v、 设置聚焦(真);
v、 requestFocus();
按钮b1=(按钮)(listView.getChildAt(位置).findViewById(R.id.butt1));
按钮b2=(按钮)(listView.getChildAt(位置).findViewById(R.id.butt1));
b1.可设置聚焦(真);
b2.可设置焦点(真);
b1.requestFocus();
}
});

但它也没有把重点放在按钮上

你找到解决办法了吗?