1

DefaultSharedPreferencesのアイテムを有効にしようとしています。

Preferences.xmlで値を次のように変更しましたandroid:enabled="false"

今、私はdefaultsharedpreferencesの他の場所のチェックボックスがチェックされたときにこの設定を有効にするコードを作成しようとしています。

私のXMLファイル:

        <CheckBoxPreference
        android:key="checkboxinternet"
        android:title="Checkbox Preference"
        android:summary="Check it on, check it off"
    />

したがって、このチェックボックスがチェックされている場合

SharedPreferences ingevuldesysteeminstellingen = PreferenceManager.getDefaultSharedPreferences(this);   


    if (true == ingevuldesysteeminstellingen.getBoolean( "checkboxinternet", false )) {
        Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit();
        editor.putBoolean( "checkboxinternet", false);
        editor.commit();
    } else { }

これは可能でさえあり、有効で選択可能な値を変更しようとし、数日間これを調査し、それが不可能であると信じ始めています。

アップデート

これまでのところ、次の部分が機能しています。チェックボックスを押すとすぐに、何かを実行できるようになります。しかし、それでもリストやその他のチェックボックスを有効または選択可能にするために機能させることはできません。

これまでの私のコード

ingevuldesysteeminstellingen = PreferenceManager.getDefaultSharedPreferences(this);

    listener = new SharedPreferences.OnSharedPreferenceChangeListener() 
    {
        public void onSharedPreferenceChanged(SharedPreferences ingevuldesysteeminstellingen,String key) 
        {

            if (key.equals( "checkboxautomaticrefresh")) 
            {
                System.out.println("Checkbox automatic refresh werd uitgelezen");
                //refreshtijdenable();
            }
            else
            {
            }

        }
    };      
    ingevuldesysteeminstellingen.registerOnSharedPreferenceChangeListener(listener);

それで、私が次にリストまたはチェックボックスを有効にするかどうかを取得するにはどうすればよいでしょうか。

4

1 に答える 1

0

で次のコードを使用できますPreferenceActivity

    //Retrieve the other checkbox
    CheckBoxPreference otherCheckboxPref = 
    (CheckBoxPreference) getPreferenceManager().findPreference("othercheckboxpreff");

    //Set a listener to the checkbox
    otherCheckboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {  

       public boolean onPreferenceChange(Preference preference, Object newValue) {
           //Retrieve the 'checkboxinternet'
           CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("checkboxinternet");   
           //If it's checked, set the 'checkboxinternet' Enabled property to true
           if (newValue.toString().equals("true"))
           {  
                checkboxPref.Enabled = true;
           } 
           //Else , set it to false
           else 
           {  
                checkboxPref.Enabled = false;
           }
           return true;
        }
     });
于 2012-09-21T20:07:08.957 に答える