0

나는 몇 가지만 저장하는 간단한 todo 목록 앱을 만들려고합니다.SharedPreferences를 사용하여 ListView에서 둘 이상의 항목 저장

ListView에서 항목을 추가하고 응용 프로그램을 닫으면 마지막으로 입력 한 항목 만로드됩니다. 앱을 종료 한 후 입력 한 모든 항목을 표시하려면 어떻게합니까?

코드 : 사전에

public class MainActivity extends ActionBarActivity { 

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"); 

adapter.add(dataSet); 
adapter.notifyDataSetChanged(); 
}} 

감사합니다.

+0

수의 중복 [목록을 저장 또는 된 SharedPreferences에서 설정을 (http://stackoverflow.com/questions/ 6598331/store-a-list-or-set-sharedpreferences) –

답변

0

SharedPreferences에 추가 할 항목마다 키를 다른 것으로 유지해야합니다. 그렇지 않으면 마지막으로 선호하는 항목이 마지막 항목보다 우선 적용됩니다.

0

dodo 목록과 같은 앱을 만들기 위해 SharedPreferences을 사용하지 않는 것이 좋습니다. SQLite 데이터베이스를 만들고 여기에 할 일을 저장하십시오. 또는 수행 할 작업을 매우 간단하게 JSON 파일로 저장할 수 있습니다.

SharedPreferences을 사용하면 다른 작업을 수행하는 데 필요한 모든 작업 환경 설정의 키를 추적해야하므로이 경우 효율적이지 않습니다.

체크 아웃 콘텐츠 제공 업체와 SQLite는 Databses 만드는 방법에 대한 라스 포겔에 의해이 게시물 :

Android SQLite database and content provider - Tutorial

관련 문제