Autore Topic: Ricaricare SimpleCursorAdpter  (Letto 423 volte)

Offline Cleon I

  • Nuovo arrivato
  • *
  • Post: 49
  • Sono l'imperatore della galassia
  • Respect: +2
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG L70, Nexus 7 2013
  • Sistema operativo:
    LinuxMint Cinnamon 17.1
Ricaricare SimpleCursorAdpter
« il: 15 Dicembre 2014, 16:23:12 CET »
0
Buonasera

Ho un app con Navigation Drawer che (fra le altre cose) mostra i risultati di un db tramite un SimpleCursorAdapter

Nell'activity principale, ho un fragment che in base alla scelta del drawer mostra con un SimpleCursorAdaper il db, per l'inserimento dei dati ho nell'actionbar un tasto + che apre un'activity. Quando apro l'activity tutto ok posso salvare ma non riesco a vedere quello che ho inserito se prima non ricarico il fragment (volgarmente devo riselezionare la voce nel drawer) come faccio a far si che una volta chiusa l'activity di inserimento (dopo aver salvato richiamo il metodo finish()) il cursoradpater si ricarichi?

Ho provato a implementare un metodo onResume nel fragment principale ma non so che scriverci dentro (ho provato cursor.reQuery ma me lo da deprecato (e non funziona))

Allego alcune porzioni di codice:

Metodo lettura dati db:

Codice (Java): [Seleziona]
public View frammento_veterinari(View view)
                {
                        veterinariLv = (ListView) view.findViewById(R.id.veterinariLv);
                        db = new  DatabaseAgenda(view.getContext());
                        db.open();
                        c = db.fetchVeterinari();
                        SimpleCursorAdapter cur = new SimpleCursorAdapter(
                                getActivity(),
                                android.R.layout.simple_list_item_2,
                                c,
                                new String[] {DatabaseAgenda.VeterinariMetaData.NOME, DatabaseAgenda.VeterinariMetaData.NUMERO_ALBO},
                                new int[]{android.R.id.text1, android.R.id.text2},
                                0);
                        veterinariLv.setAdapter(cur);
                        db.close();
                        return view;
                }

Porzione di codice che apre l'activity per l'inserimento

Codice (Java): [Seleziona]
if (id == R.id.aggiungi && mMenuTitles[1].equals((String) mTitle))
                {
                        Intent intent = new Intent (this,AggiungiVeterinari.class);
                        startActivity(intent);
                        return true;
                }

Porzione codice dell'activity che salva i dati

Codice (Java): [Seleziona]
if (id == R.id.salva)
                {
                        registra();
                        finish();
                        return true;
                }
« Ultima modifica: 15 Dicembre 2014, 16:27:13 CET da Cleon I »

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Ricaricare SimpleCursorAdpter
« Risposta #1 il: 15 Dicembre 2014, 17:08:20 CET »
0
Crea un metodo a piacere. Dentro ci metti le 4 righe di codice per popolare la list view. Ora non ti rimane che invocare tale metodo. O sbaglio?

Offline Cleon I

  • Nuovo arrivato
  • *
  • Post: 49
  • Sono l'imperatore della galassia
  • Respect: +2
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG L70, Nexus 7 2013
  • Sistema operativo:
    LinuxMint Cinnamon 17.1
Re:Ricaricare SimpleCursorAdpter
« Risposta #2 il: 15 Dicembre 2014, 17:13:11 CET »
0
Crea un metodo a piacere. Dentro ci metti le 4 righe di codice per popolare la list view. Ora non ti rimane che invocare tale metodo. O sbaglio?

Si potrei fare anche così ma non porrei duplicare il codice
Avete una soluzione più "elegante"

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Ricaricare SimpleCursorAdpter
« Risposta #3 il: 15 Dicembre 2014, 17:22:56 CET »
0
Ma non duplicò il codice. Anzi. L'esatto contrario. Cioè. Invochi il metodo per popolare la lista. Lo rinvochi quando devi fare il refresh

Offline Cleon I

  • Nuovo arrivato
  • *
  • Post: 49
  • Sono l'imperatore della galassia
  • Respect: +2
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG L70, Nexus 7 2013
  • Sistema operativo:
    LinuxMint Cinnamon 17.1
Re:Ricaricare SimpleCursorAdpter
« Risposta #4 il: 15 Dicembre 2014, 17:32:55 CET »
0
Ma non duplicò il codice. Anzi. L'esatto contrario. Cioè. Invochi il metodo per popolare la lista. Lo rinvochi quando devi fare il refresh

Ok il codice duplicato non è quello che dici bensi tutta la parte che ho nell'oncreateView per scegliere il layout da usare in base alla scelta del menù

Codice (Java): [Seleziona]
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
                {
                        int i = getArguments().getInt(ARG_AN_NUM);
                        String contenuto = getResources().getStringArray(R.array.drawer_array)[i];
                        switch (i)
                        {
                                case 1:
                                {
                                        View rootView = inflater.inflate(R.layout.veterinari_fragment,container,false);
                                        return frammento_veterinari(rootView);
                                }
                                case 2:
                                {
                                        .....
                                 }
                                 .........
                       }

se metto in un metodo anche questa parte il codice diventa illeggibile

Post unito: 15 Dicembre 2014, 17:48:12 CET
Crea un metodo a piacere. Dentro ci metti le 4 righe di codice per popolare la list view. Ora non ti rimane che invocare tale metodo. O sbaglio?

Se volessi fare come dici dovrei richiamare il emtodo all'interno dell'onResume del fragment o nell'onSaveInstanceState del fragment?

« Ultima modifica: 15 Dicembre 2014, 17:48:12 CET da Cleon I, Reason: Merged DoublePost »

Offline Cleon I

  • Nuovo arrivato
  • *
  • Post: 49
  • Sono l'imperatore della galassia
  • Respect: +2
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG L70, Nexus 7 2013
  • Sistema operativo:
    LinuxMint Cinnamon 17.1
Re:Ricaricare SimpleCursorAdpter
« Risposta #5 il: 19 Dicembre 2014, 15:17:50 CET »
0