Wie ich eine Tätigkeit mit der Absicht starten und eine Variable in der neuen Tätigkeit übergeben?

StackOverflow https://stackoverflow.com/questions/4060770

  •  27-09-2019
  •  | 
  •  

Frage

So jetzt bin ich mit dem ZXing Barcode-Scanner in meiner app. Es folgt ein Beispielcode (allgemein):

if(position == 0){
            Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
            startActivityForResult(intent, 0);


        }

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                contents = intent.getStringExtra("SCAN_RESULT");
                format = intent.getStringExtra("SCAN_RESULT_FORMAT");
                // Handle successful scan
                Intent i = new Intent(Main.this, BarcodeScanner.class);
                startActivity(i);
            } else if (resultCode == RESULT_CANCELED) {
                // Handle cancel
            }
        }
    }

Also, wenn die BarcodeScanner.class starten, möchte ich auch contents hinein passieren. Wie würde ich mich über das zu tun?

War es hilfreich?

Lösung

Verwenden Bundle innerhalb Absichten Daten von einer Aktivität zur passieren andere. In Ihrem Fall würde man so etwas zu tun hat -

        Intent intent = new Intent(Main.this,BarcodeScanner.class);

        //load the intent with a key "content" and assign it's value to content            
        intent.putExtra("content",contents);

        //launch the BarcodeScanner activity and send the intent along with it
        //note that content  is passed in as well             
        startActivity(intent);

Die Information wird in ein ‚Bündel‘ Objekt gespeichert, dass Leben in der Intent - das Bundle erstellt, wenn Sie die putExtras () -Methode des Intent-Objekt aufrufen

Andere Tipps

Auf die gleiche Weise übergeben Sie "SCAN_MODE" auf die andere Aktivität, durch putExtra("some key", contents) Aufruf vor startActivity() Aufruf und dann innerhalb Barcodescanner Aufruf this.getIntent().getStringExtra("some key")

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top