5

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

我首先尝试了这个:

button.requestFocus();

那根本行不通。然后我尝试了这个:

button.setFocusableInTouchMode(true);
button.requestFocus();

问题是,它突出显示了按钮。我不希望按钮在触摸模式下突出显示。我只想在用户按下回车键或制表键时选择按钮。

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

4

2 回答 2

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;
            }
        });

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

于 2013-08-05T21:49:00.350 回答
0

这样就完美解决了问题:

layout.getViewTreeObserver().addOnTouchModeChangeListener(new ViewTreeObserver.OnTouchModeChangeListener()
{
    public void onTouchModeChanged(boolean isInTouchMode)
    {
        if (!isInTouchMode)
            button.requestFocus();
    }
});
于 2013-08-06T01:36:49.587 回答