i dati in onActivityResult sono nulli

Sto provando a fare una semplice applicazione per Android . Ho due attività ( A e B ). In B voglio solo select una date .

Comincio A , e faccio:

  • android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" funziona a livello di applicazione ma non a livello di attività. Qualsiasi indizio?
  • icu4j è troppo grande, qualunque alternativa?
  • Android: Possibile avere più preferenze condivise distinte per app?
  • Come aggiungere sorgente + javadoc per android-support-v7?
  • Ottenere un errore nel recuperare i dati da API di Google Spreadsheet utilizzando la query struttura (sq) in Android
  • MoveCamera con CameraUpdateFactory.newLatLngBounds si blocca
  •   Intent intent = new Intent(); intent.setClass(this, B.class); startActivityForResult(intent,1); 

    Poi, in B , faccio:

      Intent intent = getIntent(); setResult(RESULT_OK); intent.putExtra("Date",dateSelected); finish(); 

    E, in A , ho il metodo successivo:

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESULT_OK && requestCode==1){ Bundle bundle = getIntent().getExtras(); String aux = bundle.getString("nuevo"); ..... } 

    Ma i data ei bundle sono null . Quando debug il codice, vedo che nella class B , l' intent ha gli Extras , ma poi, quando chiamo finish() e tornare alla class A , questo intent non è raggiungibile.

    Come posso risolvere questo problema?

  • Biblioteca Android Libreria Manifest o App Manifest
  • apri le mappe stradali api per android
  • Attendere che smoothScrollToPosition () finisca la listViewView
  • MvvmCross Android - Alternativa al binding relativo di Relative per il command del button
  • Google App Engine con Android - test di endpoint su un dispositivo reale
  • Come posso testare il risultato di un button che cambia in modo asincrono la vista dell'attività?
  • 3 Solutions collect form web for “i dati in onActivityResult sono nulli”

    prova questo:

    Poi, in B, faccio:

     Intent intent = getIntent(); intent.putExtra("Date",dateSelected); setResult(RESULT_OK, intent); finish(); 

    E, in A:

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(resultCode==RESULT_OK && requestCode==1){ Bundle MBuddle = data.getExtras(); String MMessage = MBuddle .getString("Date"); } } 

    in A metodo OnActivityResult

      if(null!=data){ Bundle bundle = data.getExtras(); String mydate = bundle.getString("Date"); } 

    e in B

     Intent returnIntent = new Intent(); returnIntent.putExtra("Date",dateSelected); setResult(RESULT_OK,returnIntent); finish(); 

    So che questo è stato risolto, ma solo per dare più spiegazioni sull'errore, si stava utilizzando getIntent() invece dell'elemento data ricevuto sul callback.

    getIntent() restituisce l'intento che è stato originariamente utilizzato per aprire l' attività A (forse quando hai aperto l'applicazione o da un'altra attività) e i data sono l'intento che l' attività B restituisce come parametri di risposta.

    Inoltre, stai utilizzando getIntent() nell'attività B invece di creare un nuovo intento che verrà restituito all'attività A.

     Intent returnIntent = new Intent(); 

    Infine, l'intento creato deve essere aggiunto in setResult

     setResult(RESULT_OK,returnIntent); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.