将Arraylist存储在sharedPreferences中

时间:2015-10-09 09:43:04

标签: java android listview arraylist sharedpreferences

我正在开发一个复杂的应用程序,它可以检索与网站不同的数据。不幸的是,我遇到了一个问题。我从html表中检索数据,该表显示在列表视图中。这不是问题,但是当我打开活动时,需要一段时间来检索所有内容并显示它。解决此问题的解决方案是将数据放入SharedPreferences中。在这种情况下,数据应仅检索一次。因此,数据应存储在SharedPreferences中,当您重新打开活动时,应显示html数据而无需等待。在这种情况下,我无法弄清楚如何实现SharedPreferences。

我希望有人能够帮助我。

这是检索数据的代码:

ListView Onderdelen = (ListView) findViewById(R.id.Onderdelen);
                    ClubkampioenschappenOnderdelenHTMLRequest clucka = new ClubkampioenschappenOnderdelenHTMLRequest(list, ClubkampioenschappenSingleenDubbelOnderdelen.this, Onderdelen);
                    clucka.execute();

包含所有数据的数组列表称为:list。

2 个答案:

答案 0 :(得分:0)

//Set the values

Set<String> set = new HashSet<String>();
set.addAll(mArrayList1);
scoreEditor.putStringSet("key", set);
scoreEditor.commit();

//Retrieve the values

Set<String> set = new HashSet<String>();
set = myScores.getStringSet("key", null);

public void addTask(Task t) {
    if (null == currentTasks) {
        currentTasks = new ArrayList<task>();
    }
    currentTasks.add(t);

    //save the task list to preference
    SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
    Editor editor = prefs.edit();
    try {
        editor.putString(TASKS, ObjectSerializer.serialize(currentTasks));
    } catch (IOException e) {
        e.printStackTrace();
    }
    editor.commit();
}
public void onCreate() {
    super.onCreate();
    if (null == currentTasks) {
        currentTasks = new ArrayList<task>();
    }

    //      load tasks from preference
    SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);

    try {
        currentTasks = (ArrayList<task>) ObjectSerializer.deserialize(prefs.getString(TASKS, ObjectSerializer.serialize(new ArrayList<task>())));
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

答案 1 :(得分:0)

使用此对象 - &gt; TinyDB--Android-Shared-Preferences - Turbo非常简单。

TinyDB tinydb = new TinyDB(context);

tinydb.putList("MyUsers", mUsersArray);

获取

tinydb.getList("MyUsers");