我在android:singleLine="true"
上提供了EditTextPreference
选项,并且当对话框中的编辑框具有焦点时,软件键盘会显示“完成”按钮来代替Enter键。但是,如果按“完成”按钮,则仅软件键盘关闭,而我仍然必须单击对话框上的“完成”按钮。
无论如何,是否需要在软件键盘上按下Enter键和ime动作键以关闭对话框并应用新值?
最佳答案
首先,我将IME选项设置为IME_ACTION_DONE
mEditTextPreference.getEditText().setImeOptions(EditorInfo.IME_ACTION_DONE);
然后使用以下代码保存值并关闭对话框。
mEditTextPreference.getEditText().setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE){
//mEditTextPreference.setText(mEditTextPreference.getEditText().getText().toString());
//better solution
mEditTextPreference.onClick(mEditTextPreference.getDialog(), Dialog.BUTTON_POSITIVE);
mEditTextPreference.getDialog().dismiss();
return true;
}
return false;
}
});
关于android - 如何使Enter键在EditTextPreference对话框上起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9065629/