Как получить предпочтение соотносить с переменной? - PullRequest
0 голосов
/ 09 июня 2010

У меня есть кнопка меню, в которой вызывается опция «Настройки», которая вызывает множество ListPreferences, таких как вес и различные размеры очков (это приложение калькулятора BAC). Я выберу один пример ... вес будет работать.

В зависимости от того, сколько вы весите, это повлияет на ваш BAC. У меня есть int для Weight, установленный на 180. Я бы хотел, чтобы кто-то смог войти в меню Settings, выбрать ListPreference «Weight» и выбрать между 100, 130, 150, 180, 210, 240, 270 и 300. У меня уже отображаются числа (все массивы созданы), и я могу выбрать один, но он ничего не делает, потому что он не связан с переменной int Weight. Как мне связать информацию?

1 Ответ

0 голосов
/ 09 июня 2010

, если вы используете стандартные PreferenceActivities:

public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {

    // <snip>

    public void onSharedPreferenceChanged(SharedPreferences pref0, String key) {
        if (key.equals("weight")){
            int weight = pref0.getInt("weight",100));

            // <you have now weight as int!>
        }
    }

    @Override
    protected void onResume() {
        super.onResume();

        // Set up a listener whenever a key changes
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    protected void onPause() {
        super.onPause();

        // Unregister the listener whenever a key changes
        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
    }
...