Как обновить конкретную настройку в Custom PreferenceActivity на Android? - PullRequest
2 голосов
/ 14 августа 2011

Сначала получите ваше предпочтение, а затем добавьте / удалите его.

Ключ берется из вашего файла preference.xml (или как вы его назвали)

       <com.test.testing.PreferenceChangeColor
            android:key="color_preference"
            android:title="Line Color"
            android:summary="Change the color of your lines"
            android:defaultValue="-16555568" />

Затем в вашем методе onCreate () вашего пользовательского предпочтительного действия вы делаете что-то вроде этого:

     // Load the preferences from an XML resource
     addPreferencesFromResource(R.xml.game_preferences); 

     userColorPreference = (Preference)getPreferenceScreen().findPreference("color_preference");

Не забудьте личное предпочтение var:

private Preference userColorPreference;

Теперь в вашем методе onSharedPreferenceChanged () вам нужно «взломать», чтобы получить предпочтение обновить.

  @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {        
        if (key.equals("color_preference")) {
            getPreferenceScreen().addPreference(userColorPreference);
            getPreferenceScreen().removePreference(userColorPreference);
        }
    }

Это хакерское решение, которое я придумал.

Кто-нибудь знает правильный способ сделать это?

...