2016-04-28 59 views
-1

我对SharedPreferences有点麻烦。当我尝试保存时,所有显示的内容都是新的一行。我也有添加一行的麻烦。你可以帮我吗?SharedPreferences问题

这里是我的代码:

public List displayData(){ 
    SharedPreferences sharedPref = MainActivity.this.getSharedPreferences("userInfo", Context 
      .MODE_PRIVATE); 
    Map<String, ?> allMap = sharedPref.getAll(); 
    all = new ArrayList<>(); 
    for (Map.Entry<String, ?> entry : allMap.entrySet()) { 
     all.add(entry.getKey().toString() + ":" + entry.getValue().toString()); 
    } 
    return all; 
} 

public void add(View view){ 
    SharedPreferences sharedPref = MainActivity.this.getSharedPreferences("userInfo", Context 
      .MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPref.edit(); 
    editor.putString(" ", " "); 
    editor.apply(); 
} 

private void save(String type, String content){ 
    editor.putString(type, content); 
    editor.apply(); 
} 

private void delete(String key){ 
    editor.remove(key); 
    editor.apply(); 
} 
+1

'editor.putString(“”,“”);'......你想在这里做什么? – codeMagic

+0

什么是错的? – Gorio

+0

老兄你真的把一个空的字符串。你怎么了? – Vucko

回答

0

我测试过你的源和这个例子工程完美..

save("TESTE1", "Valor 1"); 
save("TESTE2", "Valor 2"); 

displayData(); 

delete("TESTE1"); 

displayData(); 

,并简化你的代码。

SharedPreferences sharedPref = SplashActivity.this.getSharedPreferences("userInfo", Context 
     .MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 

public List displayData(){ 

    Map<String, ?> allMap = sharedPref.getAll(); 
    List all = new ArrayList<>(); 
    for (Map.Entry<String, ?> entry : allMap.entrySet()) { 
     all.add(entry.getKey() + ":" + entry.getValue().toString()); 
    } 

    return all; 
} 

private void save(String type, String content){ 
    editor.putString(type, content); 
    editor.apply(); 
} 

private void delete(String key){ 
    editor.remove(key); 
    editor.apply(); 
}