Привет всем, я пытаюсь сделать так, чтобы при включении CheckBox Preference (true) программно изменялся InputType на экранной клавиатуре. Я хочу, чтобы у пользователя была возможность включать/выключать параметр адреса электронной почты клавиатуры, сохраняя при этом уже установленный inputType.
По сути, это эквивалентно изменению:
android:inputType="textAutoCorrect|textCapSentences|textMultiLine"
to
android:inputType="typeAutoCorrect|textCapSentences|textmultiLine|textEmailAddress"
Настройки.xml
<CheckBoxPreference android:key="pref_key_enable_email"
android:title="@string/pref_title_enable_email"
android:summary="@string/pref_summary_enable_email"
android:defaultValue="false" />
Это то, что у меня есть на данный момент.
public void setInputType(int type) {
boolean showEmail = false;
// Show the Email keyboard if the pref_key_enable_email preference is TRUE
mTextEditor = (EditText) findViewById(R.id.embedded_text_editor);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(prefs.getBoolean("pref_key_enable_email",false)== true){
showEmail = true;
if (showEmail) {
mTextEditor.setInputType(InputType.TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS); w
} else {
mTextEditor.getInputType();
}
}
Я проверил /data/data/myappname/shared_prefs com.myappnamehere.preferences.xml. По крайней мере, я знаю, что логические значения do меняются с false на true, когда флажок установлен. Просто ничего не делает :(