将焦点设置为按钮

时间:2013-08-05 21:39:00

标签: java android button user-interface focus

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

我首先尝试过这个:

button.requestFocus();

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

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

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

为了澄清,我只想让第一个按钮在不接触模式时以焦点开始。

2 个答案:

答案 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();
    }
});