Java 将焦点设置为按钮
如何将焦点设置为按钮,但不将setFocusableInTouchMode设置为true 我第一次尝试这个: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(); 问题是,它会
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();
}
});
这不行,因为有几个按钮可以对焦。我只希望第一个按钮以焦点开始。我想我可以将焦点存储在一个变量中,并覆盖回车键和所有可能改变焦点的按键。必须有更好的方法来处理焦点问题。