Autore Topic: Gestione acitvity ricerca  (Letto 384 volte)

Offline fittizio

  • Nuovo arrivato
  • *
  • Post: 1
  • keep an open mind...
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S plus
  • Sistema operativo:
    Ubuntu 13.04
Gestione acitvity ricerca
« il: 05 Giugno 2013, 12:03:01 CEST »
0
Salve a tutti,
sono nuovo del forum e nuovo nella programmazione android  :-P
Prima di tutto vi ringrazio per l'attenzione e mi complimento  per il forum, fondamentale per imparare.
Vi espongo quello che vorrei fare:
ho un activity che permette all'utente di effettuare una ricerca su un DB sqlite interno, prende il testo da ricercare tramite un EditText  e creo una ListView per mostrare i risultati, fin qui tutto bene.
Quello che non so fare è che, una volta che l'utente ha visualizzato uno dei risultati della ListView, vorrei che avesse la possibilità di ritornare alla pagina dei risultati della ricerca visualizzando i risultati precedenti e il testo nell'EditText. Ho letto un po' in giro che dovrei utilizzare l'onSaveInstanceState() ma non ho ben chiaro il modo di utilizzarlo e soprattutto non sono sicuro che sia la soluzione più efficiente.
Il target dell'applicazione è 10 (nel caso mi suggeriste delle soluzioni con api più recenti).

Ho provato a salvare il contenuto dell' EditText nel bundle attraverso la OnSaveInstanceState() e viene effettivamente salvato (lo so attraverso il log) il problema è al ritorno nell'activity di ricerca dove non viene caricato il valore, o meglio il bundle passato all'onCreate risulta nullo.
Vi posto le poche righe di codice dell'activity che effettua la ricerca che ho scritto:
Codice (Java): [Seleziona]
 @Override
  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState != null) {
                textToSearch = savedInstanceState.getString("text");
                queryDB();

        }
}

 @Override
public void onSaveInstanceState(Bundle savedInstanceState){
        savedInstanceState.putString("text", srcText.getText().toString());
        Log.i("search", "onSaveInstance:" + srcText.getText().toString());
        super.onSaveInstanceState(savedInstanceState);
}

queryDB() è un metodo che effettua la ricerca in base alla variabile textToSearch.
L'errore potrebbe stare nel modo in cui richiamo l'activity che effettua la ricerca dopo aver visualizzato il risultato?
Lo faccio in questo modo:
Codice (Java): [Seleziona]
 @Override
 public void onBackPressed(){
        Intent search = new Intent(this, SearchActivity.class);
        startActivity(search);
}

Spero che così sia un po' più chiaro quello che sto cercando di fare.
Grazie in anticipo.

Risolto con le SharedPreferences, se interessa a qualcuno chiedete e risponderò :)
« Ultima modifica: 07 Giugno 2013, 14:24:42 CEST da fittizio, Reason: topic risolto »