das*_*ony 1 android preferenceactivity android-preferences
我给了android:singleLine="true"选项EditTextPreference,当对话框中的编辑框有焦点时,软件键盘显示"完成"按钮代替Enter键.但是,如果我按下完成按钮,只有软键盘关闭,我仍然需要单击对话框上的完成按钮.
无论如何在软件键盘上输入key和ime动作键来关闭对话框并应用新值?
首先,我将IME选项设置为IME_ACTION_DONE
mEditTextPreference.getEditText().setImeOptions(EditorInfo.IME_ACTION_DONE);
Run Code Online (Sandbox Code Playgroud)
然后使用以下代码来保存值并关闭对话框.
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;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2402 次 |
| 最近记录: |