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