2012-05-01 119 views
2

我知道这类问题问很多时间,但还没有人给出完美的答案。Android将光标从一个EditText移动到另一个EditText?

我有一个问题:

我想从EditText1 **移动到另一个** EditText2。 我已经检测到editText1,但如何将光标移动到editText2。

总之,我不得不将我的光标位置从一个editText1直接移动到另一个EditText2。

+0

当您想将光标从Edittext1移动到Edittext2 –

+0

@KrishnakantDalal当我在第一个editText1中检测到一些特殊字符时,它将移动到下一个editText2。 我已经成功地检测到特殊字符,但不知道如何实时移动它。 –

回答

6

我遇到了这种类型的问题,并找到如下解决方案。

这里我有两个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

谢谢你的回答。 有时它在我登录真实设备时无法使用。 –

+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。 我已经成功地检测到特殊字符,但不知道如何在Realtime中移动它。 –

1

设置onKeyListener检测压在每一个按键检查你的病情,当你的条件将满足套EDITTEXT财产edittext2.requestFocus关键( );

0

我测试了所有以前的代码段,并发现所有工作正常。但是我发现用正确的edittext对象调用“requestFocus()”也是可行的。按照问题所述,ans可以是:

edittext2.requestFocus();

这对我来说工作得很好。如果我错了,请纠正我。

相关问题