Guardando y recargando ListView usando preferencias compartidas [Guardando en Destruir ()]

Estoy creando una lista de tareas pendientes. En este momento, mi aplicación agrega y elimina datos hacia y desde un ListView. Sin embargo, cuando cierro mi aplicación, los datos se borran. Quiero usar SharedPreferences para guardar los datos enDestroy (), luego, cuando se abra mi aplicación, quiero que los datos se vuelvan a cargar.

Sin embargo, no sé cómo llevar a cabo esta tarea.¿Alguien me puede ayudar a guardar un ListView usando Preferencias Compartidas (también conocido como Estoy buscando un código)?

Hay tutoriales para una sola preferencia compartida que busco agregar dinámicamente varias cadenas cuando se cierra mi aplicación. Luego, cuando lo vuelva a abrir, aparecerán los datos. Solo uso una página de ACTIVIDAD, todo ocurrirá en una sola página.

Aqui esta mi codigo

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

Respuestas a la pregunta(3)

Su respuesta a la pregunta