我正在编写一个简单的计算器应用程序(使用带有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());
}
但这不起作用..你可以帮我解决这个问题吗?
答案 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