Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Android] startActivityForResult con activity dinamica

    ciao!

    ho una activity dove vengono salvate delle opzioni.
    al termine è impostata questa azione:
    codice:
    public class OpzioniActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            
        }
    
        public void salva(View view) {
        
                // DO STUFF
    
                startActivityForResult(new Intent(this, MainActivity.class), 1);
            }
        }
    
    }
    il problema è che adesso a questa activity ci si può arrivare anche da altre activity, non solo da MainActivity.
    ed io dovrei tornare all'activity da cui arrivo.
    come si fa in questi casi??

  2. #2
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,700
    questo codice è nell'activity "secondaria"?
    perchè usi startActivityForResult ?

    n.b. il mio android/java ha parecchia ruggine , per cui prendimi con le molle, magari ti serve da spunto per capire come muoverti
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  3. #3
    ciao!

    ho risolto usando le reflection e passando il nome dell'activity all'intent.

    in sostanza, nella Activity principale:
    codice:
    Intent io = new Intent(this, OpzioniActivity.class);
    io.putExtra("CLASS", "com.mia.app.HomeActivity");
    startActivity(io);
    bisogna passare il nome comprensivo del package.

    poi nell'activity secondaria:
    codice:
    String act = oi.getStringExtra("CLASS");
    try {
        startActivityForResult(new Intent(this, Class.forName(act)), 1);
    } catch (ClassNotFoundException e) {
    }

  4. #4
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,700
    non dubito che funzioni, ma non è detto sia la strada corretta;
    startActivityForResult (come intuibile dal nome) apre un Activity per riceverne un risultato (da un'operazione normalmente "esterna") ma non mi sembra sia l'uso che ne fai;
    secondo me dovresti tornare all'activity chiamante semplicemente chiudendo la secondaria e passare eventuali valori tramite putExtra se volatili o SharedPreferences se permanenti
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  5. #5
    quello startActivityForResult c'era per un motivo, ma devo approfondire perchè un pezzo di app non è scritto da me.
    questa activity è stata creata appositamente per settare dei dati validi per tutta la app.
    all'inizio era stata progettata in un modo, poi l'ho modificata io per le nuove esigenze usando le SharedPreferences.

    smaltite le urgenze magari ci ritorno e cambio la logica.

    cmq grazie per i suggerimenti!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.