2012-05-01 19 views
2

私はこれらのタイプの質問が何度も尋ねられたことを知っていますが、それでも誰も完全な答えを出してくれませんでした。別のAndroid EditTextから別のEditTextにカーソルを移動しますか?

私は EditText1から移動したい

** ** EditText2

は、私は質問を持っています。 私はすでにeditText1を検出しましたが、カーソルをeditText2に移動する方法はありますか?

要するに、カーソル位置をあるeditText1から別のEditText2に直接移動させなければならなかった。

+0

カーソルをEdittext1からEdittext2に移動する場合 –

+0

@KrishnakantDalal最初のeditText1に特殊文字が検出されると、次のeditText2に移動します。 私は特殊文字を検出するのに成功していましたが、リアルタイムでそれを移動する方法はわかりませんでした。 –

答えて

6

私はこの種の問題に直面し、以下の解決策を見出しました。ここで

私は「A」を押すと、私のカーソルが次のステップに移動します2 EDITTEXT、

を持っています。私はそれを行うために以下のコードを使用しました。

final EditText editText = (EditText) findViewById(R.id.editText1); 

     editText.setOnKeyListener(new OnKeyListener() { 

      @Override 
      public boolean onKey(View v , int keyCode , KeyEvent event) { 

        EditText editText2 = (EditText) findViewById(R.id.editText2); 

       // TODO Auto-generated method stub 
       if (keyCode == event.KEYCODE_A) { 

        Selection.setSelection((Editable) editText2.getText(),editText.getSelectionStart()); 
        editText2.requestFocus(); 
       } 

       return true; 
      } 
     }); 

これに関連してエラーが発生した場合はお知らせください。 私の答えがあなたに役立つなら、それを受け入れ、upvoteにレートしてください。

+0

ansありがとうございます。 実際のデバイスでチェックインしたときに時々動作しませんでした。 –

+0

私はここでより良い解決策を見つけましたhttp://stackoverflow.com/questions/12418324/android-move-cursor-from-one-edittext-to-another-one-if-click-any-letter-in-fiel –

1

ここに実際の例がありますが、これが役立つことを願っています。

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <EditText 
     android:id="@android:id/text1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Some string of text" 
     /> 

    <EditText 
     android:id="@android:id/text2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Some string of text" 
     /> 

    <Button 
     android:id="@android:id/button1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Button" 
     /> 

</LinearLayout> 

クラス:

public class Example extends Activity { 
    TextView text1; 
    TextView text2; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     text1 = (EditText) findViewById(android.R.id.text1); 
     text2 = (EditText) findViewById(android.R.id.text2); 
     Button button = (Button) findViewById(android.R.id.button1); 

     button.setOnClickListener(new OnClickListener() { 
      public void onClick(View view) { 
       Selection.setSelection((Editable) text2.getText(), text1.getSelectionStart()); 
       text2.requestFocus(); 
      } 
     }); 
    } 
} 
+0

あなたの答えをありがとう。私はそれをリアルタイムのシナリオにしたい。 最初のeditText1カーソルに特殊文字を検出すると、次のeditText2に移動します。 私は特殊文字を検出するのに成功していましたが、リアルタイムでそれを移動する方法はわかりませんでした。 –

1

設定onKeyListenerあなたの状態をチェックし、あなたの条件が財産edittext2.requestFocus(EDITTEXTセットを成就されたときに押されたすべてのキーで押されたキーを検出します);

0

私はすべての前のコードセグメントをテストし、すべて正常に動作していることを確認しています。しかし、私はちょうど "requestFocus()"と呼ばれる適切なedittextオブジェクトが動作していることがわかります。尋ねられた質問に従って、ansは次のようになります:

edittext2.requestFocus();

これは問題なく機能しています。私が間違っていれば私を修正してください。

関連する問題