意図でアクティビティを起動し、新しいアクティビティの変数を渡す方法は?
-
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")
所属していません StackOverflow