2009-11-25 63 views
8

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

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

现在一旦用户进入一些NUMERICS到输入1和压力机“+”,现在我想重点从INPUT1转移到输入2。我怎样才能做到这一点?

我试过的“+”

onClick(View arg0){ 
    operator.setText("+"); 

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

按键下面的代码,但是这是行不通的..你可以请帮我在这?

+2

好吧,我找到了答案,我们可以简单地调用 input2.requestfocus(); 改变foucus。 – Vamsi 2009-11-26 06:14:41

+0

如果你需要在TextWatcher中使用它,你需要对它进行概括,这意味着你不必使用特定的对象来调用requestFocus(); 你有答案吗? – antonio081014 2012-11-24 19:32:27

回答

24

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

0

[顺便说一句,你要避免使用AbsoluteLayout - 这是过时,并且可以被移除]

而不是使用的onClick的,你想要的动作在的KeyListener的方法onkeydown事件发生。

参见:setKeyListener

然后你可以检查KeyEvent的与

KeyEvent.getAction() == KeyEvent.KEYCODE_PLUS 
2

键试试这个:

input1.setNextFocusDownId(input2.getId());

您使用的输入2,我想你想要从input1到input2。

相关问题