Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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
Java 将焦点设置为按钮_Java_Android_Button_User Interface_Focus - Fatal编程技术网

Java 将焦点设置为按钮

Java 将焦点设置为按钮,java,android,button,user-interface,focus,Java,Android,Button,User Interface,Focus,如何将焦点设置为按钮,但不将setFocusableInTouchMode设置为true 我第一次尝试这个: button.requestFocus(); button.setFocusableInTouchMode(true); button.requestFocus(); 这根本不起作用。然后我试了一下: button.requestFocus(); button.setFocusableInTouchMode(true); button.requestFocus(); 问题是,它会

如何将焦点设置为按钮,但不将setFocusableInTouchMode设置为true

我第一次尝试这个:

button.requestFocus();
button.setFocusableInTouchMode(true);
button.requestFocus();
这根本不起作用。然后我试了一下:

button.requestFocus();
button.setFocusableInTouchMode(true);
button.requestFocus();
问题是,它会突出显示按钮。我不希望按钮在触摸模式下突出显示。我只想在用户点击enter键或tab键时选择按钮


为了澄清,我只希望第一个按钮在不处于触摸模式时以焦点启动。

我想,您希望:

button.setOnKeyListener(new OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                switch (keyCode) {
                case KeyEvent.KEYCODE_ENTER:
                    // HIT THE ENTER KEY
                    break;
                case KeyEvent.KEYCODE_TAB:
                    // HIT THE TAB KEY
                    break;
                }
                return false;
            }
        });

如果你不想这样,你能说清楚吗?对不起,我的英语不好。

这完美地解决了问题:

layout.getViewTreeObserver().addOnTouchModeChangeListener(new ViewTreeObserver.OnTouchModeChangeListener()
{
    public void onTouchModeChanged(boolean isInTouchMode)
    {
        if (!isInTouchMode)
            button.requestFocus();
    }
});

这不行,因为有几个按钮可以对焦。我只希望第一个按钮以焦点开始。我想我可以将焦点存储在一个变量中,并覆盖回车键和所有可能改变焦点的按键。必须有更好的方法来处理焦点问题。