Zapisywanie i ponowne ładowanie ListView przy użyciu współdzielonych preferencji [Zapisywanie naDestroy ()]

Tworzę listę rzeczy do zrobienia. Teraz moja aplikacja dodaje i usuwa dane do iz ListView. Jednak po zamknięciu aplikacji dane zostaną usunięte. Chcę użyć SharedPreferences do zapisania danych onDestroy (), a gdy otworzy się moja aplikacja, chciałem, aby dane zostały ponownie załadowane.

Nie wiem jednak, jak wykonać to zadanie.Czy ktoś może mi pomóc w zapisaniu ListView za pomocą Shared Preferences (aka szukam kodu)?

Istnieją samouczki dotyczące tylko jednej udostępnionej preferencji. Szukam, aby dynamicznie dodawać wiele ciągów po zamknięciu mojej aplikacji. Po ponownym otwarciu dane pojawią się. Używam tylko strony JEDNEJ AKTYWNOŚCI, wszystko będzie się działo na jednej stronie.

TUTAJ JEST MÓJ KOD:

public class Main_ToDoList extends Activity implements OnClickListener
{
private Button btnAdd;
private EditText et;
private ListView lv;
ArrayList<String> list = new ArrayList<String>();
ArrayAdapter<String> adapter;
final Context context = this;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    btnAdd = (Button)findViewById(R.id.addTaskBtn);
    btnAdd.setOnClickListener(this);
    et = (EditText)findViewById(R.id.editText);
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, list);

    // set the lv variable to your list in the xml
    lv=(ListView)findViewById(R.id.list);
    lv.setAdapter(adapter);

    // set ListView item listener
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, final int position, long id)
        {
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
            alertDialogBuilder.setTitle("Confirm Delete");
            alertDialogBuilder.setMessage("Sure you want to delete?");
            alertDialogBuilder.setCancelable(false);
            alertDialogBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i)
                {
                    adapter.remove(adapter.getItem(position));
                }
            });
            alertDialogBuilder.setNegativeButton("No", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i)
                {
                    dialogInterface.cancel();
                }
            });
            AlertDialog alertDialog = alertDialogBuilder.create();
            alertDialog.show();
        }
    });
}
public void onClick(View v)
{
    String input = et.getText().toString();
    if(input.length() > 0)
    {
        adapter.add(input);
        et.setText("");
    }
}
@Override
public void onDestroy()
{
    super.onDestroy();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main__to_do_list, menu);
    return true;
}
} 

questionAnswers(3)

yourAnswerToTheQuestion