Выпуск SharedPreferences для Android - PullRequest
0 голосов
/ 15 сентября 2011

Я пытаюсь использовать SharedPreferences в своем приложении, и мне нужно немного гепатита, потому что я только начинаю его использовать. В основном, я хочу сделать следующее: я создаю объект SharedPreference в своей основной деятельности, затем во второй деятельности яУ меня есть представление списка и щелкните элемент. Я использую putInt();, чтобы поставить целое число для отправки текста. На новом занятии у меня есть кнопка, которая добавляет sharedpreference в систему adroid.И, наконец, в зависимости от идентификатора, отправленного на второе задание, я хочу показать другой текст в задании № 3.

Вот небольшой код:

Основная операция:

SharedPreferences faves = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        SharedPreferences.Editor editor = faves.edit();
        editor.putInt("favorites",0);
        editor.commit();

Второе занятие:

SharedPreferences favs= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        final SharedPreferences.Editor editor = favs.edit();

Третье занятие, в котором я хочу показать текст, зависит от того, по какому элементу щелкнули:

favs.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                editor.putInt("favorites", getIntent().getIntExtra("id", 0));
            }
        });

Есть предложения, как это исправить?

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

Хорошо, во-первых, трудно понять вопрос.В примере кода вы пытаетесь сохранить значения в основном и третьем действиях, но, кажется, никогда не читаете значения.Затем в конце вы спрашиваете: «Есть предложения, как это исправить?»что означает "это"?Вы получаете ошибку или результат, которого вы не ожидаете?Вот пример кода, который я использую.У меня есть статический класс Constants с некоторыми значениями, которые я повторно использую в других частях моего приложения, но вы поняли.

ApplicationContext context = ApplicationContext.getInstance(); //I use a custom app context but any context will do.
SharedPreferences prefs = context.getSharedPreferences(
Constants.PREFS_FILE_NAME, Activity.MODE_PRIVATE);
prefs.getString("favorites", null);//or any other getter you want to use
0 голосов
/ 15 сентября 2011

Вам не нужно создавать свой собственный объект SharedPreference, API Activity.getSharedPreference (имя, режим) сделает это.

По сути, он создает XML-файл в собственной папке вашего приложения, и каждый метод put ... () добавляет элемент в XML-файл, чтобы его можно было обновлять и читать позже, просто нужно указать имя.

иметь глобальный редактор - плохая идея, иногда это может привести к потере ваших данных, поэтому каждый раз, когда вы хотите прочитать / записать sharedPreference, выбирайте редактор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...