Android: CheckBoxPreference включить / отключить тип ввода адреса электронной почты (переопределить настройки по умолчанию) - PullRequest
0 голосов
/ 01 мая 2011

Привет всем, я пытаюсь выполнить задание, чтобы при включении предпочтения CheckBox (true) программно отображалась экранная клавиатура InputType. Я хочу, чтобы у пользователя была возможность включить / выключить опцию адреса электронной почты на клавиатуре, сохраняя уже установленный тип ввода.

По сути дела эквивалентен изменению:

android:inputType="textAutoCorrect|textCapSentences|textMultiLine"

до

android:inputType="typeAutoCorrect|textCapSentences|textmultiLine|textEmailAddress"

Preferences.xml

* * 1010

Это то, что у меня есть сейчас.

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, когда флажок установлен. Просто ничего не делает: (

1 Ответ

0 голосов
/ 01 мая 2011

Подумайте о том, чтобы немного очистить ваш код

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean showEmail = prefs.getBoolean("pref_key_enable_email",false);
mTextEditor = (EditText) findViewById(R.id.embedded_text_editor);

if(showEmail) {
    mTextEditor.setInputType( mTextEditor.getInputType() | TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
}

Я предполагаю, что у вас есть флаги "по умолчанию" в xml для вашего макета:

android:inputType="textAutoCorrect|textCapSentences|textMultiLine" 
...