软键盘上的“下一步”键不显示

时间:2014-07-09 19:42:05

标签: android keyboard

这让我有点疯狂。

我有2个编辑文本字段和一个按钮。我想在第一个编辑文本获得焦点时显示软键盘。我希望软键盘显示“下一步”键,这样当按下时,光标会跳转到第二个“编辑文本”字段。

当第二个编辑文本字段获得光标时,我仍然希望软键盘显示“下一步”。现在按“下一步”将关闭软键盘并将焦点转到按钮。

这是我的代码:

EditText editText1 = (EditText) findViewById(R.id.some_text_field);
EditText editText2 = (EditText) findViewById(R.id.some_other_text_field);

editText1.setInputType(EditorInfo.some constant);
editText1.setFocusable(true);
editText1.setFocusableInTouchMode(true); 

if (editText1.requestFocus()){
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

    if (imm != null){
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
    }               
}

editText1.setImeOptions(EditorInfo.IME_ACTION_NEXT);
editText1.setNextFocusDownId(R.id.some_other_text_field);
editText2.setInputType(EditorInfo.some other constant);
editText2.setFocusable(true);
editText2.setFocusableInTouchMode(true);
editText2.setImeOptions(EditorInfo.IME_ACTION_DONE);

看起来非常简单。

事情是,第一次运行(在应用程序安装后)editText1获得焦点并且软键盘显示但是没有“下一步”键 - 而是显示“完成”。按“完成”会将您移动到editText2(如您所愿)并将“完成”更改为“下一步。点击”下一步“现在将焦点放在editText2上并取消软键盘。

如果您现在触摸editText1,则会显示软键盘,并显示“Next”键,如下所示。

我可以做些什么才能在第一次运行此活动时获得正确的行为(editText1获得焦点,“下一步”显示)?

我认为是editText1.setImeOptions(EditorInfo.IME_ACTION_NEXT);应该强制显示“下一步”键。我错过了什么?

2 个答案:

答案 0 :(得分:3)

您是否尝试过布局文件中的相同操作。我在布局文件中做了它并且正在工作。以下是我登录edittexts的工作代码

  <EditText
    android:id="@+id/et_sign_in_with_email_email"
    style="@style/SignInEditText"
    android:layout_below="@id/rl_titlebar_signin"
    android:layout_marginTop="16dp"
    android:hint="@string/hint_email"
    android:imeOptions="actionNext"
    android:inputType="textEmailAddress" >
</EditText>

<EditText
    android:id="@+id/et_sign_in_with_email_pwd"
    style="@style/SignInEditText"
    android:layout_below="@+id/et_sign_in_with_email_email"
    android:layout_marginTop="20dp"
    android:hint="@string/hint_pwd"
    android:imeOptions="actionDone"
    android:inputType="textPassword" />

答案 1 :(得分:0)

将焦点导航到下一个编辑字段添加

android:imeOptions="flagNavigateNext"

并点击完成后点击添加

解除软键
android:imeOptions="actionDone"