2016-04-28 13 views
-1

私はSharedPreferencesに少し問題があります。私が保存しようとすると、それが新しい行で表示されます。私はまた、行を追加することに問題があります。私を助けてもらえますか?SharedPreferences issues

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