如何将焦点设置为按钮但不将 setFocusableInTouchMode 设置为 true?
我首先尝试了这个:
button.requestFocus();
那根本行不通。然后我尝试了这个:
button.setFocusableInTouchMode(true);
button.requestFocus();
问题是,它突出显示了按钮。我不希望按钮在触摸模式下突出显示。我只想在用户按下回车键或制表键时选择按钮。
为了澄清,我只是希望第一个按钮在不处于触摸模式时以焦点开始。
如何将焦点设置为按钮但不将 setFocusableInTouchMode 设置为 true?
我首先尝试了这个:
button.requestFocus();
那根本行不通。然后我尝试了这个:
button.setFocusableInTouchMode(true);
button.requestFocus();
问题是,它突出显示了按钮。我不希望按钮在触摸模式下突出显示。我只想在用户按下回车键或制表键时选择按钮。
为了澄清,我只是希望第一个按钮在不处于触摸模式时以焦点开始。
我想,你想要这个:
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();
}
});