如何避免 "actionDone" 用于 EditText
how to avoid "actionDone" for EditText
我正在尝试为我的 EditText.Here 显示软键盘 我有一个关于 imeoptions.my 要求的问题是:当切换 softkeyboard.always actionNext 应该可见时,actionDone 不应该对用户可见.
我面临的是:当用户切换键盘时,它第一次显示 actionNext 但是当用户键入数据然后单击键盘切换器时它显示 actionDone option.but 这里我想要 actionNext only.Beside,如果用户清除字段并再次切换键盘,它只显示 actionDone 但不显示 actionNext。
conclusion:i 在任何情况下都只需要 actionNext。
这是我切换软键盘的代码:
btn_keyboard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//actv_ServiceLoc.setInputType(InputType.TYPE_CLASS_TEXT);
InputMethodManager inputMgr = (InputMethodManager)
getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
//inputMgr.toggleSoftInput(EditorInfo.IME_ACTION_NEXT,
EditorInfo.IME_ACTION_DONE);
inputMgr.toggleSoftInput
(EditorInfo.IME_FLAG_NO_ENTER_ACTION,EditorInfo.IME_ACTION_DONE);
//actv_ServiceLoc.setText("");
actv_ServiceLoc.requestFocus();
if(actv_ServiceLoc.getText().toString().length()==0) {
actv_ServiceLoc.setImeOptions(EditorInfo.IME_ACTION_NEXT);
}
else
{
actv_ServiceLoc.setImeOptions(EditorInfo.IME_ACTION_NEXT);
}
actv_ServiceLoc.setFocusableInTouchMode(true);
location_error.setVisibility(myView.GONE);
}
});
提前致谢。
事实上,我们无法禁用 android 键盘上的完成(输入)操作按钮。
但我们只能通过将 android:imeOptions="actionDone" 添加到您的 EditText 来禁用下一步按钮。
那么控制完成按钮的最后一个解决方案是使用以下代码块:
EditText txtEdit = (EditText) findViewById(R.id.txtEdit);
txtEdit.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// your additional processing...
return true;
} else {
return false;
}
}
});
在切换键盘之前写在单行下方有助于您始终在键盘中显示 'actionNext' 按钮。
actv_ServiceLoc.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
//your ui control.setInputType(InputType.YourFlag);
我正在尝试为我的 EditText.Here 显示软键盘 我有一个关于 imeoptions.my 要求的问题是:当切换 softkeyboard.always actionNext 应该可见时,actionDone 不应该对用户可见. 我面临的是:当用户切换键盘时,它第一次显示 actionNext 但是当用户键入数据然后单击键盘切换器时它显示 actionDone option.but 这里我想要 actionNext only.Beside,如果用户清除字段并再次切换键盘,它只显示 actionDone 但不显示 actionNext。 conclusion:i 在任何情况下都只需要 actionNext。 这是我切换软键盘的代码:
btn_keyboard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//actv_ServiceLoc.setInputType(InputType.TYPE_CLASS_TEXT);
InputMethodManager inputMgr = (InputMethodManager)
getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
//inputMgr.toggleSoftInput(EditorInfo.IME_ACTION_NEXT,
EditorInfo.IME_ACTION_DONE);
inputMgr.toggleSoftInput
(EditorInfo.IME_FLAG_NO_ENTER_ACTION,EditorInfo.IME_ACTION_DONE);
//actv_ServiceLoc.setText("");
actv_ServiceLoc.requestFocus();
if(actv_ServiceLoc.getText().toString().length()==0) {
actv_ServiceLoc.setImeOptions(EditorInfo.IME_ACTION_NEXT);
}
else
{
actv_ServiceLoc.setImeOptions(EditorInfo.IME_ACTION_NEXT);
}
actv_ServiceLoc.setFocusableInTouchMode(true);
location_error.setVisibility(myView.GONE);
}
});
提前致谢。
事实上,我们无法禁用 android 键盘上的完成(输入)操作按钮。
但我们只能通过将 android:imeOptions="actionDone" 添加到您的 EditText 来禁用下一步按钮。
那么控制完成按钮的最后一个解决方案是使用以下代码块:
EditText txtEdit = (EditText) findViewById(R.id.txtEdit);
txtEdit.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// your additional processing...
return true;
} else {
return false;
}
}
});
在切换键盘之前写在单行下方有助于您始终在键盘中显示 'actionNext' 按钮。
actv_ServiceLoc.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
//your ui control.setInputType(InputType.YourFlag);