意図でアクティビティを起動し、新しいアクティビティの変数を渡す方法は?

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

  •  27-09-2019
  •  | 
  •  

質問

だから今、私はアプリでZxingバーコードスキャナーを使用しています。これがサンプルコード(generic)です:

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
            }
        }
    }

したがって、起動するとき BarcodeScanner.class, 、私も合格したいです contents その中に。どうやってそれをしますか?

役に立ちましたか?

解決

使用する バンドル 内部の意図では、あるアクティビティから他のアクティビティにデータを渡す。あなたの場合、あなたは次のようなことをしなければなりません -

        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);

情報は、意図の内側にある「バンドル」オブジェクトに保存されます - 意図オブジェクトのputextras()メソッドを呼び出すと、バンドルが作成されます

他のヒント

あなたが通り過ぎたのと同じ方法 "SCAN_MODE" 他のアクティビティに、呼び出して putExtra("some key", contents) 電話する前に startActivity(), 、その後、Barcodescannerのコール内 this.getIntent().getStringExtra("some key")

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top