EditText上的Android键盘下一个按钮问题

问题描述 投票:58回答:12

我正面临一个问题,我在活动上有用户名和密码字段,现在当我点击用户名键盘时出现但没有下一个按钮,我无法通过键盘移动到下一个Edittext控件,在这种情况下,键盘显示输入按钮作为附在屏幕截图中,增加其高度,

任何人都可以指导我这个问题的解决方案是什么(在edittext上显示下一个按钮)?

我的守则

txtUserid = (EditText)findViewById(R.id.txtUserID);
        txtUserPasword = (EditText)findViewById(R.id.txtPassword);

        txtUserid.setNextFocusDownId(R.id.txtPassword);
        txtUserPasword.setNextFocusDownId(R.id.btnLogin);
android android-edittext
12个回答
37
投票

在您提供的代码行下方添加以下行:

txtUserid.setOnKeyListener(new OnKeyListener() {

    public boolean onKey(View v, int keyCode, KeyEvent event) {
          // If the event is a key-down event on the "enter" button
          if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
               (keyCode == KeyEvent.KEYCODE_ENTER))
          {
                // Perform action on Enter key press
                txtUserid.clearFocus();
                txtUserPasword.requestFocus();
                return true;
          }
          return false;
    }
});

txtUserPasword.setOnKeyListener(new OnKeyListener() {

    public boolean onKey(View v, int keyCode, KeyEvent event) {

          if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER))
          {
                 // Perform action on Enter key press
                 // check for username - password correctness here
                 return true;
          }
          return false;
    }
});

1
投票

只需添加android:singleLine =“true”你不需要那个代码


1
投票

安卓的inputType =“文本”

您的edittext标记中的行。你的问题将得到解决。


0
投票

android:singleLine="true"已被弃用

使用

 android:maxLines="1"
 android:inputType="text"

代替


104
投票

在你的xml上添加android:singleLine="true" android:nextFocusDown="@+id/textView2"。将显示Next键并将焦点转移到下一个字段。


52
投票

在你的布局中,只需为前三个文本框设置XML属性android:imeOptions="actionNext",为最后一个设置android:imeOptions="actionDone"

More Examples


8
投票

如果您的EditText应该只有1行,请在XML上添加属性android:singleLine="true",这将删除Enter键并将其替换为Next / Done按钮。


7
投票

另一个最佳解决方案是:

android:singleLine="true" 
android:imeOptions="actionNext"

4
投票

添加你的xml布局,

假设你想要4行edittext,所以前面有三个editext u,

android:imeOptions="actionNext"

和最后一个edittext你设置

android:imeOptions="actionDone"

你添加行添加,使用

  android:singleLine="true" 

2
投票

使用此属性:

android:inputType="textPersonName"

2
投票

你需要处理一些事情:

  1. 添加android:singleLine="true"
  2. 在XML上添加android:nextFocusDown="@+id/tv2"
  3. 不要添加android:imeOptions="actionNext",否则它将覆盖以上两个属性。

1
投票

只需将android:singleLine =“true”添加到布局XML中的EditText标记即可。

© www.soinside.com 2019 - 2024. All rights reserved.