Android是否将光标从一个编辑文本移动到另一个编辑文本?

Android是否将光标从一个编辑文本移动到另一个编辑文本?,android,cursor,android-edittext,cursor-position,Android,Cursor,Android Edittext,Cursor Position,我知道这类问题被问了很多次,但仍然没有人给出完美的答案 我有一个问题: 我想从EditText1**移动到另一个**EditText2。 我已经检测到editText1,但如何将光标移动到editText2 简而言之,我必须将光标位置从一个editText1直接移动到另一个EditText2。这里是一个工作示例,希望这有帮助 XML: 设置onKeyListener以检测每按一个键上按下的键检查您的条件以及何时满足您的条件设置edittext属性edittext2.requestFocus()

我知道这类问题被问了很多次,但仍然没有人给出完美的答案

我有一个问题:

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


简而言之,我必须将光标位置从一个editText1直接移动到另一个EditText2。

这里是一个工作示例,希望这有帮助

XML:


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

我面对这类问题,找到了如下解决方案

这里我有两个编辑文本

如果我按“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;
            }
        });
如果您在这方面遇到任何错误,请告诉我。
如果我的回答对您有帮助,请接受它并对其进行投票。

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

edittext2.requestFocus()


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

为此,您需要做的只是…将以下两个属性添加到xml格式的EditText标记中,但最后一个EditText除外(如果您也将其添加到最后一个EditText,则当您从键盘按enter/next时,光标控件将再次转到第一个EditText)


希望这有助于将光标从Edittext1移动到Edittext2@KrishnakantDalal当我在第一个editText1中检测到某些特殊字符时,它将移动到下一个editText2。我成功地发现了这个特殊的角色,但不知道如何实时移动它。谢谢你的回答。我想把它变成实时场景。当我在第一个editText1中检测到某些特殊字符时,光标将移动到下一个editText2。我成功地检测到了这个特殊角色,但不知道如何实时移动它。感谢ans。有时当我在真实设备上登录时,它不起作用。我在这里找到了更好的解决方案
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();
            }
        });
    }
}
 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;
            }
        });