2015-10-09 75 views
-1

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

我希望有人能够帮助我。

这是用于检索数据的代码:

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

与所有的数据数组列表称为:列表。

+0

检查此链接: http://stackoverflow.com/questions/7057845/save-arraylist-to-sharedpreferences –

+0

我不明白它是如何工作的。这就是我在这里问的原因。 –

回答

0

//设置值

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

值//检索

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(); 
    } 
} 
+0

因为'Set'会失去顺序,我宁愿Json解决方案 – JohnnyAW

+0

你能解释我应该在我的应用程序中工作吗? –

0

使用这个对象 - >TinyDB--Android-Shared-Preferences -Turbo它很简单。

TinyDB tinydb = new TinyDB(context); 

tinydb.putList("MyUsers", mUsersArray); 

得到

tinydb.getList("MyUsers");