Android将光标从一个EditText移动到另一个EditText?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android将光标从一个EditText移动到另一个EditText?相关的知识,希望对你有一定的参考价值。

我知道很多时候都会问这些类型的问题。但仍然没有人给出完美答案。

我有问题 :

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

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

答案

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

这里我有两个editText,

如果我按“a”,我的光标将移至下一步。我使用下面的代码来做这件事。

 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。

另一答案

这是一个有效的例子,希望这会有所帮助。

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();
            }
        });
    }
}
另一答案

设置onKeyListener以检测按下的每个键上按下的键检查您的条件以及何时满足您的条件设置edittext属性edittext2.requestFocus();

另一答案

为此,您需要做的就是...将以下两个属性添加到xml中的EditText标记,除了最后一个EditText(如果您将其添加到最后一个EditText,则光标控件将再次转到第一个)按键盘上的Enter / next时的EditText)

<EditText . . android:singleLine="true" android:imeOptions="actionNext" . . />

希望这可以帮助

另一答案

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

edittext2.requestFocus();

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

以上是关于Android将光标从一个EditText移动到另一个EditText?的主要内容,如果未能解决你的问题,请参考以下文章

Android edittext - settextmethod 光标问题

Android EidtText 光标的使用和设置

如何在swift ios中自动将光标从一个文本字段移动到另一个文本字段?

达到字符数后,如何以编程方式将光标从一个 NSTextField 移动到另一个?

Android番外篇 如何从一个EditText跳转到另一个EditText

当用户以编程方式单击swift ios中的删除按钮时,如何将光标从一个文本字段自动移动到另一个文本字段?