2017-04-03 3 views
1

Ich habe vier Aktivitäten:Vier Aktivitäten Sie zeigen Toast nicht

Aktivität A

private void addCard() { 
     Intent intent = new Intent(MainActivity.this, GetNumberActivity.class); 
     startActivityForResult(intent, REQUEST_CODE_CREATE); 
    } 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == REQUEST_CODE_CREATE) { 
     if (resultCode == RESULT_OK) { 
      if (data.hasExtra("data")) { 
       // Card has been create 
       Toast.makeText(getApplication(), "Karata została wygenerowana.", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 
} 

Aktivität B

Intent intent = new Intent(GetNumberActivity.this, ScanQrCodeActivity.class); 
       intent.putExtra(EXTRA_MESSAGE, uunitValue); 
       startActivityForResult(intent, REQUEST_CODE); 

Dann in der zweiten Aktivität I-Daten an den dritten passieren muß Aktivität.

Aktivität C

Card card = new Card(path3, base32, nameCard, intervalTotp, passwordHotp, getDate(), expirationDate, hotpValue); 
            Intent intent = new Intent(ScanQrCodeActivity.this, Stage3Activity.class); 
            intent.putExtra("card", card); 
            startActivity(intent); 
finish(); 

Aktivität D

Intent data = new Intent(Stage3Activity.this,MainActivity.class); 
       data.putExtra("data", card); 
       startActivityForResult(data, RESULT_OK); 

Wenn ich die Taste auf Aktivität A drücken, wird der Toast nicht gezeigt. Coding

Glückliche

+0

Hast du 'setResult()' überall? –

+0

Hier erfahren Sie, wie Sie das Ergebnis der Aktivität erhalten https://developer.android.com/reference/android/app/Activity.html#StartingActivities –

+0

Versuchen Sie, Intent data = new Intent(); data.putExtra ("Daten", Karte); setResult (RESULT_OK, Daten); Ende(); 'anstelle von Ihrem Code in Aktivität D –

Antwort

4

Sie müssen Ihren Code aktualisieren, da

für RESULT_OK
if (resultCode == RESULT_OK) { 
     if (requestCode == REQUEST_CODE_CREATE) { 
      if (data.hasExtra("data")) { 
       // Card has been create 
       Toast.makeText(getApplication(), "Karata została wygenerowana.", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 

Prüfen Sie zunächst folgt und dann weiter gehen!

+0

ad aktualisieren Sie diese, aber nichts zu zeigen Toast – Ewelina

1

ersetzen getApplication() mit this (der Kontext der aktuellen Aktivität)

Toast.makeText(this.class, "Karata została wygenerowana.", Toast.LENGTH_SHORT).show(); 
+0

nichts zu zeigen Toast – Ewelina

+0

Wann soll dieser Toast angezeigt werden? –

+0

Toast sollte angezeigt werden, wenn klicken Sie auf Actitvty vier – Ewelina

0

Verwenden getApplicationContext() statt getApplication() in Ihrem makeText() Methode

+0

nichts Toast anzeigen – Ewelina

Verwandte Themen