2009-11-25 108 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。

相關問題