如何将焦点设置为按钮但不将setFocusableInTouchMode设置为true?
我首先尝试过这个:
button.requestFocus();
这根本行不通。然后我尝试了这个:
button.setFocusableInTouchMode(true);
button.requestFocus();
问题是,它突出显示按钮。我不希望按钮在触摸模式下突出显示。我只想在用户点击回车键或Tab键时选择按钮。
为了澄清,我只想让第一个按钮在不接触模式时以焦点开始。
答案 0 :(得分:1)
我想,你想要这个:
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;
}
});
如果你不想这样,你能说清楚吗?抱歉我的英文。
答案 1 :(得分:0)
这完美地解决了这个问题:
layout.getViewTreeObserver().addOnTouchModeChangeListener(new ViewTreeObserver.OnTouchModeChangeListener()
{
public void onTouchModeChanged(boolean isInTouchMode)
{
if (!isInTouchMode)
button.requestFocus();
}
});