Autore Topic: Aprire nuova finestra e riavviare activity  (Letto 753 volte)

Offline berna4sg

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
Aprire nuova finestra e riavviare activity
« il: 11 Febbraio 2014, 11:48:04 CET »
0
Ciao ragazzi  ;-)
Avrei bisogno di una mano: sto creando un'app e ho la necessità di utilizzare un menù in cui selezionare una certa opzione.
Ho 2 problemi:
- innanzitutto devo fare in modo che una volta cliccata un'opzione si deve aprire una finestra in cui viene visualizzata una textbox in cui modificare un certo valore. Vi posto il codice:
Codice (Java): [Seleziona]
@Override
        public boolean onCreateOptionsMenu(Menu menu) {
                menu.add ("Sampling frequency").setOnMenuItemClickListener(new OnMenuItemClickListener() {
                public boolean onMenuItemClick (MenuItem item) {
                    // Aprire una finestra dove ho una semplice TextBox nel quale inserisco un certo valore
                    return true;
            }
    });;
                menu.add ("Filter type");
                menu.add ("Other");
                return true;
        }


- una volta selezionata questa opzione vorrei riavviare l'activity perchè l'app deve analizzare dei dati dai vari sensori e deve farlo in base a quest'ultima (è la frequenza di campionamento in poche parole). Come faccio a riavviarla?

Grazie in anticipo !!!  ;-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Aprire nuova finestra e riavviare activity
« Risposta #1 il: 11 Febbraio 2014, 12:05:51 CET »
0
Sul comando di menu lanci una activity dove inserisci/modifichi il valore.
Poi su onResume della precedente activity vai a controllare se il valore è modificato e in tale caso agisci di conseguenza.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline mirkus87

  • Utente junior
  • **
  • Post: 56
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
  • Play Store ID:
    Mirko Vitiello
  • Sistema operativo:
    Windows 7
Re:Aprire nuova finestra e riavviare activity
« Risposta #2 il: 11 Febbraio 2014, 12:49:41 CET »
0
Come ha detto bradipao, devi lanciare una nuova activity in cui visualizzi la textbox (o ti gestisci una custom Dialog)
Comunque un'esigenza simile ce l'avevo anche io e l'ho gestita tramite startActivityForResult dove richiami l'activity con la text box http://www.dev-articles.com/article/Android-Activity-startActivityForResult-387002.
Dopo aver settato la risposta nell'activity richiamata, ho implementato nell'activity principale il metodo che riceve la risposta: nel caso in cui il valore settato fosse diverso dal valore precedente allora ho richiamato nuovamente l'activity da aggiornare,richiamando prima il finish() e poi startActivity di modo che l'activity venisse ri-aggiornata considerando il nuovo valore settato


Offline berna4sg

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
Re:Aprire nuova finestra e riavviare activity
« Risposta #3 il: 11 Febbraio 2014, 19:05:54 CET »
0
E come faccio a prendere il valore inserito nella textbox dalla seconda activity per modificare un valore presente nell'activity principale?
In poche parole come faccio a passare un valore dalla seconda activity all'activity principale?

Offline mirkus87

  • Utente junior
  • **
  • Post: 56
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
  • Play Store ID:
    Mirko Vitiello
  • Sistema operativo:
    Windows 7
Re:Aprire nuova finestra e riavviare activity
« Risposta #4 il: 11 Febbraio 2014, 20:24:49 CET »
0

Offline berna4sg

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
Re:Aprire nuova finestra e riavviare activity
« Risposta #5 il: 11 Febbraio 2014, 21:38:00 CET »
0
Il problema è che vorrei riavviare l'activity principale col valore aggiornato.

Offline mirkus87

  • Utente junior
  • **
  • Post: 56
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
  • Play Store ID:
    Mirko Vitiello
  • Sistema operativo:
    Windows 7
Re:Aprire nuova finestra e riavviare activity
« Risposta #6 il: 11 Febbraio 2014, 23:40:00 CET »
0
Non so che tipo di dato tu debba aggiornare ma supponiamo sia una textview
Quindi nell'activity A hai questa textview e il menu dove richiami l'activity B che ti permetterá di cambiare il valore della textview presente in A.
Quindi se hai seguito il post precedente nel metodo onActivityResult ti basterà effettuare la settext della textview con il nuovo valore spedito dall'activity B e recuperato nell'activity A.

Offline berna4sg

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
Re:Aprire nuova finestra e riavviare activity
« Risposta #7 il: 12 Febbraio 2014, 00:22:06 CET »
0
Si si ho messo infatti topic risolto e ho risolto in questo modo:
- nell'activity principale:
Codice (Java): [Seleziona]
..
Intent intent = new Intent(getApplicationContext (), Option.class);
                        startActivityForResult (intent, 1);
..

protected void onActivityResult (int requestCode, int resultCode, Intent data)
        {
                if (requestCode == 1)
                {
                        if (resultCode == RESULT_OK)
                        {      
                         String result = data.getStringExtra ("result");
                         //altre operazioni
                    }
                    if (resultCode == RESULT_CANCELED) { /* Scrivere magari nel file di log qualcosa */ }
                 }
        }
- nell'activity secondaria:
Codice (Java): [Seleziona]
..
Intent returnIntent = new Intent();
                                returnIntent.putExtra ("result", result);
                                setResult (RESULT_OK, returnIntent);    
                                finish ();
Grazie dell'aiuto !!!  ;-)