Un database c'è, ed è presente su storage anziché sulla cartella inaccessibile. Credo che questa sia una soluzione più conveniente, anche se espone il database a un maggior rischio, per la possibilità di trasferirlo facilmente mediante un semplice meccanismo di copia-incolla anche su dispositivi non rootati.
Ripristino il codice per aggiungere voci al database.
public class MainActivity extends AppCompatActivity implements Frammento.OnFragmentInteractionListener{ Helper helper; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); helper=new Helper(this); helper.save("Mario"); helper.save("Pippo"); helper.save("Mimmo"); ,,,,,Ora mi occupo di caricare un fragment.
Per prima cosa ho creato il codice del fragment, con tanto di creazione dell'interfaccia per inviare messaggi all'activity:
public class Frammento3 extends Fragment { OnFragmentInteractionListener mListener; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View v=inflater.inflate(R.layout.frammento3,container,false); return v; } @Override public void onAttach(Context context){ super.onAttach(context); if(context instanceof OnFragmentInteractionListener){ mListener=(OnFragmentInteractionListener)context; } } }Quindi ho creato il codice dell'activity principale:
public class MainActivity extends AppCompatActivity implements Frammento.OnFragmentInteractionListener{ Helper helper; Frammento myFrag; FragmentManager fragmentManager=getSupportFragmentManager(); FragmentTransaction transaction=fragmentManager.beginTransaction(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); helper=new Helper(this); /*helper.save("Mario"); helper.save("Pippo"); helper.save("Mimmo");*/ myFrag=new Frammento(); transaction.add(R.id.display,myFrag,"frammento"); transaction.commit(); } @Override public void onFragmentInteraction() { } }(ho oscurato i comandi che avevo usato in precedenza per la scrittura del database).
Ottengo il caricamento del frammento.
Ora devo fare in modo che il fragment legga il database disponendo i dati che vi trova in qualche view...
Fatto.
Viene creata una TextView per ogni record appartenente al recordset.
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View v=(View)inflater.inflate(R.layout.frammento,container,false); LinearLayout layout=(LinearLayout)v.findViewById(R.id.frammento); helper=new Helper(v.getContext()); Cursor c=helper.query(); do{ testo=new TextView(v.getContext()); testo.setText(c.getString(c.getColumnIndex("nome"))); layout.addView(testo); }while(c.moveToNext()); return v; }E funziona.
Nessun commento:
Posta un commento