2009-11-25 23 views
8

2つの入力欄ボックスと出力ボックスを持つ単純な電卓アプリケーション(3つの編集ボックスといくつかのボタンで絶対レイアウトを使用)を作成しています。1つの編集テキストボックスから別の編集テキストボックスにフォーカスを移動

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

が、これは動作していない「+」のキープレスに以下のコードを試してみました..あなたがこの上で私を助けてくださいことができますか?

+2

私は答えを見つけたので、簡単にと呼ぶことができます。input2.requestfocus(); foucusを変更するには を入力してください。 – Vamsi

+0

TextWatcherでこれを使用する必要があり、汎用化する必要がある場合は、requestFocus()を呼び出すために特定のオブジェクトを使用してはいけないということです。 答えがありますか? – antonio081014

答えて

24

私は答えを見つけました:input2.requestFocus();と呼んで、フォーカスを変更することができます。

0

[ところで、あなたはAbsoluteLayoutを使用しないようにしたい - 。それは非推奨だし、除去してもよい]

代わりのonClickを使用しての、あなたはアクションがのKeyListenerのにonKeyDownメソッドで発生します。

を参照してください:あなたがINPUT2を使用している、と私はあなたを推測

input1.setNextFocusDownId(input2.getId());

setKeyListener

その後、あなたはこれを試してみてください

KeyEvent.getAction() == KeyEvent.KEYCODE_PLUS 
2

KeyEventのキーを調べることができますinput1からinput2に行きたい

関連する問題