Salvare dati ListView in memoria

di Anonimizzato28354 il
4 risposte
Buongiorno a tutti e Buona Pasqua!
Avendo una ListView che dovrà funzionare da semplice blocco note (o lista della spesa). Qual è il modo più semplice per salvare i dati in memoria e far si quindi che ricompaiano all'avvio successivo dell'app? E' possibile fare quanto detto senza creare un database? Mostro il codice. Grazie
public class MainActivity extends AppCompatActivity {



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

        final ListView listView = (ListView) findViewById(R.id.ListViewID);
        final Button AddItem = (Button) findViewById(R.id.AddItemBtn);
        final EditText editTxt = (EditText) findViewById( R.id.editTxt );


        String[] elementi = new String[] {
        };


        final List<String> elementi_list = new ArrayList<String>(Arrays.asList(elementi));


        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>
                (this, android.R.layout.simple_list_item_1, elementi_list);


        listView.setAdapter(arrayAdapter);

        AddItem.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (editTxt.length() == 0){
                Toast.makeText( MainActivity.this, "Campo vuoto :(", Toast.LENGTH_SHORT ).show();
                return;}

                elementi_list.add(editTxt.getText().toString());

                editTxt.getText().clear();

                arrayAdapter.notifyDataSetChanged();
                Toast.makeText( MainActivity.this, "Elemento aggiunto!", Toast.LENGTH_SHORT ).show();
            }
         });
         listView.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() {
          @Override
          public boolean onItemLongClick (AdapterView<?> parent, View view, int i, long l) {
          elementi_list.remove( i );
          arrayAdapter.notifyDataSetChanged();
          Toast.makeText( MainActivity.this, "Elemento eliminato!", Toast.LENGTH_SHORT ).show();
          return true;
    }
});
    }
}

4 Risposte

  • Potresti salvare i dati in un file (xml,json od altro) ed aggiungere al caricamento dell'applicazione il controllo se esiste questo file, se sì lo carica e lo modifica all'uscita dell'app
  • Grazie. Purtroppo è proprio la prima parte che mi manca e non so quale strada percorrere. Potresti indicarmi qual è la procedura corretta per salvare i dati della ListView in un file diciamo xml? O magari postarmi link (se è permesso dal forum)?
  • Considerando che, come già accennato, il fine ultimo è quello di creare una semplice lista della spesa, sarebbe corretto utilizzare Shared Preferences per il salvataggio dei dati, oppure quest'ultimo si usa solo per il salvataggio delle impostazioni? Grazie
Devi accedere o registrarti per scrivere nel forum
4 risposte