我正面临一个问题,我在活动上有用户名和密码字段,现在当我点击用户名键盘时出现但没有下一个按钮,我无法通过键盘移动到下一个Edittext控件,在这种情况下,键盘显示输入按钮作为附在屏幕截图中,增加其高度,
任何人都可以指导我这个问题的解决方案是什么(在edittext上显示下一个按钮)?
我的守则
txtUserid = (EditText)findViewById(R.id.txtUserID);
txtUserPasword = (EditText)findViewById(R.id.txtPassword);
txtUserid.setNextFocusDownId(R.id.txtPassword);
txtUserPasword.setNextFocusDownId(R.id.btnLogin);
在您提供的代码行下方添加以下行:
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;
}
});
只需添加android:singleLine =“true”你不需要那个代码
加
安卓的inputType =“文本”
您的edittext标记中的行。你的问题将得到解决。
android:singleLine="true"
已被弃用
使用
android:maxLines="1"
android:inputType="text"
代替
在你的xml上添加android:singleLine="true" android:nextFocusDown="@+id/textView2"
。将显示Next键并将焦点转移到下一个字段。
在你的布局中,只需为前三个文本框设置XML属性android:imeOptions="actionNext"
,为最后一个设置android:imeOptions="actionDone"
。
如果您的EditText应该只有1行,请在XML上添加属性android:singleLine="true"
,这将删除Enter键并将其替换为Next / Done按钮。
另一个最佳解决方案是:
android:singleLine="true"
android:imeOptions="actionNext"
添加你的xml布局,
假设你想要4行edittext,所以前面有三个editext u,
android:imeOptions="actionNext"
和最后一个edittext你设置
android:imeOptions="actionDone"
你添加行添加,使用
android:singleLine="true"
使用此属性:
android:inputType="textPersonName"
你需要处理一些事情:
android:singleLine="true"
。android:nextFocusDown="@+id/tv2"
。android:imeOptions="actionNext"
,否则它将覆盖以上两个属性。只需将android:singleLine =“true”添加到布局XML中的EditText标记即可。