0

みなさん、こんにちは。チェックボックス設定が有効(true)のときに、プログラムで画面キーボードのInputTypeが変更されるようにアクティビティを作成しようとしています。inputTypeがすでに設定されている状態で、キーボードの電子メールアドレスオプションをオン/オフにするオプションをユーザーに持たせたい。

基本的に、変更と同等のことを行います。

android:inputType="textAutoCorrect|textCapSentences|textMultiLine"

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

Preferences.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_prefscom.myappnamehere.preferences.xmlを確認しました。チェックボックスをオンにすると、ブール値がfalseからtrueに変わることは少なくとも知っています。それは何もしません:(

4

1 に答える 1

0

コードを少しきれいにすることを検討してください

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" 
于 2011-04-30T23:18:13.967 に答える