Магазин ArrayList в Android после закрытия приложения

1

У меня есть ArrayList строк, из которых я рисую ListView. В приложении пользователь может добавлять элементы в ArrayList, вызывая отображение элемента в ListView. Пока приложение запущено, ArrayList сохраняет свои элементы, но после перезагрузки (или в любое другое время, когда приложение останавливается) элементы теряются. Я читал о внутреннем, внешнем и SQLite-хранилище, но я не мог заставить работать внутреннее и внешнее хранилище, и я ничего не знаю о SQLite, и приложение должно появиться в пятницу. Есть ли лучшая реализация экономии? Я приложил полную копию кода без каких-либо методов хранения для просмотра.

Спасибо.

http://www.mediafire.com/?tf8093g39jv0f61 < - code

  • 0
    попробуйте разместить свой код на pastie или pastebin.
Теги:

3 ответа

1
Лучший ответ

вы можете перейти к идее Serializable, ссылаясь на следующие ссылки, которые вы можете получить.

http://developer.android.com/reference/java/io/Serializable.html

и

http://www.jondev.net/articles/Android_Serialization_Example_%28Java%29

  • 1
    Да, я думаю, что это так! Благодарю.
5

Используйте реализацию настроек для сохранения ArrayList<String>. В методе onPause используйте это:

ArrayList<String> tobesaved = getData(); // fetch the data
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor edit = prefs.edit();
edit.putStringSet("SAVEDATA", new HashSet<String>(tobesaved));
edit.commit();

а затем вы можете получить его в методе onResume:

ArrayList<String> retrieved = new ArrayList<String>(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getStringSet("SAVEDATA", new HashSet<String>()));

EDIT: у меня не было возможности посмотреть на ваш код: mediafire попытался открыть всплывающее окно в моем браузере, чтобы я быстро закрыл вкладку, но это должно сработать для вас. Попробуйте и, возможно, используйте gist (at http://gist.github.com) или pastebin (at http://pastebin.com/) вместо этого, чтобы делиться более длинными кодовыми последовательностями.

  • 2
    Я не думаю, что менеджер предпочтений предназначен для хранения больших объемов информации.
  • 0
    Он никогда не говорил, что хранит большие объемы информации. Он сказал, что у него есть ArrayList of Strings для хранения.
Показать ещё 7 комментариев
1
ArrayList<String> tobesaved = getData(); // fetch the data
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor edit = prefs.edit();
edit.putStringSet("SAVEDATA", new HashSet<String>(tobesaved));
edit.commit();

ArrayList<String> retrieved = new ArrayList<String>(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getStringSet("SAVEDATA", new HashSet<String>()));

Этот код работает, но мой Arraylist отсортирован по алфавиту. Этот hashSet испортил алфавитные организации моих строк., Любой может ответить на этот вопрос, отличный для PERFECT? Заставляя ArrayList сохранять и загружать с тем же порядком?

  • 0
    использовать collections.sort на найденном массиве

Ещё вопросы

Сообщество Overcoder
Наверх
Меню