4
我試圖尋找答案,但找不到我在找什麼: 這是我第一次嘗試保存數據/使用SharedPreferences,所以我還沒有確定我在做什麼。 主要觀點是,用戶在EditText中輸入內容後,它會填充ListView。但是我也希望它能夠在執行此操作時保存字符串,以便在用戶重新輸入應用程序時使用LoadPreferences。這不會發生,雖然使用SharedPreferences從ListView保存數據
代碼:
public class TaskPage extends SherlockActivity {
EditText display;
ListView lv;
ArrayAdapter<String> adapter;
Button addButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
display = (EditText) findViewById(R.id.editText1);
lv = (ListView) findViewById(R.id.listView1);
addButton = (Button) findViewById(R.id.button1);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
lv.setAdapter(adapter);
LoadPreferences();
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String task = display.getText().toString();
adapter.add(task);
adapter.notifyDataSetChanged();
SavePreferences("LISTS", task);
}
});
}
protected void SavePreferences(String key, String value) {
// TODO Auto-generated method stub
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = data.edit();
editor.putString(key, value);
editor.commit();
}
protected void LoadPreferences(){
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
String dataSet = data.getString("LISTS", "None Available");
}
林相當肯定,我做錯了什麼事,但沒有錯誤。所以當我運行應用程序時,除了沒有任何東西被保存(或者它只是不顯示在ListView中),所有東西都可以工作。
那麼我該如何解決這個問題? 謝謝!
是啊,我會嘗試,但是那裏有一個原因,我沒有放的ArrayList。我第一次創建一個ArrayList,每當我啓動應用程序時,我會得到一個Force Close。但我會再試一次 – user1949400
這工作!謝謝!你能給我一個快速解釋爲什麼我需要一個ArrayList傳遞給我的ArrayAdapter的LoadPreferences,但我不需要它在我的初始適配器 – user1949400
@ user1949400:看到我的編輯答案,我認爲這也將工作 –