【问题标题】:How to go to next Edit text in android after enter value in first one?在第一个输入值后如何在android中转到下一个编辑文本?
【发布时间】:2014-03-06 06:41:42
【问题描述】:

我们在第一个EditText 中输入值。现在我想当我们按下完成按钮时光标移动到下一个EditText

我尝试这样做并在 Google 上搜索,但没有找到。

【问题讨论】:

标签: android android-edittext


【解决方案1】:

你可以获得DONE按钮点击并设置焦点到下一个EditText

first_edit_text.setOnEditorActionListener(new OnEditorActionListener() {

            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

                 if(actionId == 0 || actionId== EditorInfo.IME_ACTION_DONE)
                 {
                     next_edit_text.requestFocus();
                 }
                return false;
            }
      });

编辑:

满足您的要求:

public void setEditText() {
        edittext = new EditText[length];
        for (int i = 0; i < length; i++) {
            edittext[i] = new EditText(this);
            edittext[i].setId(i);
            edittext[i].setSingleLine();
            edittext[i].setImeOptions(EditorInfo.IME_ACTION_DONE);
            edittext[i].setOnEditorActionListener(new OnEditorActionListener() {

                @Override
                public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                    if (actionId == 0 || actionId == EditorInfo.IME_ACTION_DONE) {

                        int current_id= v.getId();
                        if((current_id+1)!=length){
                                 edittext[current_id+1].requestFocus();
                        }
                    }
                    return false;
                }
            });
            linear.addView(edittext[i]);
        }
    }

【讨论】:

  • 编辑在这个应用程序中使用的文本是以编程方式创建的,所以我们做什么
  • public boolean onEditorAction(TextView arg0, int keyCode, KeyEvent event) { EditText edit_text = (EditText) arg0; sb.append(edit_text.getText().toString().trim()); edit_text.setSingleLine(); edit_text.setImeOptions(EditorInfo.IME_ACTION_DONE);
  • 第一个edittext是否创建?您只需在其上添加 EditorActionListener ..
  • 我们使用for循环创建edittext public void setEditText() { edittext = new EditText[length]; for (int i = 0; i
  • 好的,现在有什么问题??并将您的代码放在 paste.org 中,以便所有人都能阅读
【解决方案2】:

请在 EditText 中使用 imeOptions。

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="32dp"
    android:layout_marginTop="16dp"
    android:imeOptions="actionNext"
    android:ems="10" >
    <requestFocus />
</EditText>

【讨论】:

  • 我猜他不想在点击软键盘的下一步按钮时进入下一步。所以你的答案是不相关的..
【解决方案3】:

比嗅探键简单得多:尝试设置android:singleLine="true"android:imeOptions="actionNext"(至少对于单行输入文本视图)。在 Android documentation 中阅读更多有关 TextView 的内容。重复:Android edittext key return goes to next text

【讨论】:

  • 我猜他不想在点击软键盘的下一步按钮时进入下一步。所以你的答案是不相关的..
【解决方案4】:

您可以尝试在 DONE 键的onClick 中触发 Next 键的点击,如下所示:

editText.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            Activity.dispatchKeyEvent(KeyEvent.KEYCODE_NEXT); //trigger Next key's click here 
        }
        return false;
    }
});

希望对您有所帮助。

【讨论】:

    【解决方案5】:

    在文本中输入值后, 要转到下一个编辑框,您可以输入 xml 布局编辑框代码,如下所示:

    android:nextFocusDown="@+id/here your next edit box id"
    

    【讨论】:

      【解决方案6】:

      如果您将android:singleLine="true" 放在EditText 上,它会自动将键盘上的Enter 按钮变为下一步 按钮。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-27
        • 2014-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-05
        • 2015-07-10
        • 2021-12-08
        相关资源
        最近更新 更多