当前位置: 首页 > 知识库问答 >
问题:

Android:输入键移动到下一个编辑文本

微生啸
2023-03-14

我有一个带有6个EditText的辅助功能...该活动运行良好,但我需要单击每个EditText来填充它...

如何使enter键将焦点更改为另一个EditText?

我已经试过了

1.我已经在每个EditText上设置了OnKeyListener。

switch (v.getId()) {
    case R.id.editText1:
        activity.findViewById(R.id.editText2).requestFocus();
        return true;
    case R.id.editText2:
        activity.findViewById(R.id.editText3).requestFocus();
        return true;
    case R.id.editText3:
        activity.findViewById(R.id.editText4).requestFocus();
        return true;
            .
            .
            .
}

但是,当我单击enter键时,在焦点更改为另一个EditText之前,会在前一个EditText上创建一行。

2.我已经将android: singleLine="true"添加到每个EditText。它不适用于inputType="number"的EditText

共有2个答案

许法
2023-03-14

试试这段代码:

它在otp屏幕上运行良好,我在这个活动中使用了四个编辑文本,请遵循以下步骤

>

/*Textwatcher class*/
public class GenericTextWatcher implements TextWatcher {
private View view;
public GenericTextWatcher(View view) {
this.view = view;
}

 @Override
  public void afterTextChanged(Editable editable) {
// TODO Auto-generated method stub
String text = editable.toString();
switch(view.getId()) {
    case R.id.edit_otp1:
        if(text.length()==1)
            edit_otp2.requestFocus();
        break;
    case R.id.edit_otp2:
        if(text.length()==1)
            edit_otp3.requestFocus();
        break;
    case R.id.edit_otp3:
        if(text.length()==1)
            edit_otp4.requestFocus();
        break;
    case R.id.edit_otp4:
        break;
   }
  }

@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}

@Override
 public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
 }

在edittext otp活动中使用textwatcher,如下所示

/*call textwatcher class*/
    edit_otp1.addTextChangedListener(new GenericTextWatcher(edit_otp1));
    edit_otp2.addTextChangedListener(new GenericTextWatcher(edit_otp2));
    edit_otp3.addTextChangedListener(new GenericTextWatcher(edit_otp3));
    edit_otp4.addTextChangedListener(new GenericTextWatcher(edit_otp4));

这对我有用,请试试。

桂高义
2023-03-14

您可以在xml中为编辑文本添加imeOptions属性:

android:imeOptions="actionNext"

但不要忘了指定inputType:例如,android:inputType=“text”


有关更多详细信息,请检查此问题-在Android上单击软键盘Next时移动到另一个EditText

 类似资料:
  • 我有一个线性布局(LinearLayout),其中有几个编辑文本(EditText),它们都是通过编程方式创建的(不是用XML布局),尤其是没有id。 当我在其中一个中键入,并且下一个(各自对焦)被禁用,并且我按下键盘上的Next IME按钮时,焦点前进到禁用的,但我不能在其中键入任何内容。 我所期望的是焦点前进到下一个启用的编辑文本。除了通过EditText禁用EditText之外,我还尝试了。

  • 我似乎有一个问题,关于移动我的文本框回到原来的部门。每次我把搜索栏放回那个区域。我试图制作英国广播公司新闻网站,但似乎不起作用。 当我尝试将搜索栏放置在正确的区域时,它会将其移动到新行中。 我希望它看起来像BBC新闻网站上的酒吧。

  • 我想在用户在EditText中键入文本时将文本放入我的应用程序中的某个字符串中,并使用它来生动地在活动上显示它(在不同的视图中...) - 就像谷歌的实时/即时搜索工作一样...

  • 我正在开发一个Android聊天应用程序。一切运作良好,但除了一件事;我想设置一个布局的可见性消失,然后设置一个不同的布局可见时,用户开始输入编辑文本,就像在WhatsApp上实现的。但是我似乎想不明白。任何帮助都将不胜感激 基本上,我想做的是设置一个布局的可见性,该布局包含一个图像按钮,用于将图像上载到gone,然后显示一个布局,该布局包含一个图像按钮,用于在用户开始键入时将edittext中的

  • 我想在按下按钮时将一个活动中编辑文本的值传递给另一个活动,并在我的代码中使用该值。然而,在这些活动之间还有一个活动,我不想在其中使用该值 我的活动1包括: 用户从Activity1转到Activity2 活动2 用户从Activity2转到Activity3 活动3 在这里,我想将该值用作字符串。

  • 我试图创建编辑文本,当用户按enter键时,它会转到新行,并允许用户输入更多文本。 这是我的设计部分 这是我的代码,但问题是光标位置不会移到下一行。我尝试了,但它不起作用