将焦点从一个“编辑”文本框移动到另一个

时间:2009-11-25 12:39:26

标签: android focus

我正在编写一个简单的计算器应用程序(使用带有3个编辑框和一些按钮的绝对布局),它有两个输入文本框和一个输出框。

input1 = (EditText) findViewById(R.id.input1);
input2 = (EditText) findViewById(R.id.input2);

现在,一旦用户输入一些数字到input1并按'+',现在我想将焦点从input1转移到input2。我怎么能这样做?

我在'+'

的按键上尝试了以下代码
onClick(View arg0){
    operator.setText("+");

    //Move focus from input1 to input2
    input1.clearFocus();
    input2.setNextFocusDownId(input2.getId());
}

但这不起作用..你可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:26)

好吧,我找到了答案:我们可以简单地致电input2.requestFocus();来改变焦点。

答案 1 :(得分:2)

试试这个:

input1.setNextFocusDownId(input2.getId());

你正在使用input2,我猜你想从input1转到input2。

答案 2 :(得分:0)

[顺便说一下,你想避免使用AbsoluteLayout - 它已被弃用,可能会被删除。]

您希望在KeyListener的onKeyDown方法中执行操作,而不是使用onClick。

请参阅:setKeyListener

然后你可以用

检查KeyEvent的密钥
KeyEvent.getAction() == KeyEvent.KEYCODE_PLUS