这是我的MainActivity.java,我想要结果显示在另一个活动的文本视图中吗?我该如何实现?您能举个例子给我看看吗?
public class MainActivity extends AppCompatActivity {
private Button scan_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scan_btn=(Button)findViewById(R.id.btnQr);
final Activity activity =this;
scan_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator intentIntegrator = new IntentIntegrator(activity);
intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
intentIntegrator.setPrompt("Scan");
intentIntegrator.setCameraId(0);
intentIntegrator.setBeepEnabled(false);
intentIntegrator.setBarcodeImageEnabled(false);
intentIntegrator.initiateScan();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (result != null){
if (result.getContents()==null){
Toast.makeText(this,"You cancelled scanning",Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(this,result.getContents(),Toast.LENGTH_LONG).show();
}
}
else {
super.onActivityResult(requestCode, resultCode, data);
}
}
}
这是我的第二项活动。我想在哪里显示结果。
public class DetailActivity extends AppCompatActivity {
private TextView qrResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
qrResult= findViewById(R.id.qrResult);
}
}
如果您愿意,我也可以发布我的布局文件。谢谢。
答案 0 :(得分:2)
您需要创建一个新的Intent对象,并使用intent.putextra()向其添加额外的数据。此方法可以将String对象作为参数。您需要为该字符串指定唯一键。然后启动新活动。例如 意图i =新意图(上下文,nextactivity.class) i.putextra(“ stringKey”,yourSstring) startActivity(i)
然后,在第二个活动中,您需要获取启动该活动的意图(使用getIntent),您可以早在onCreate上使用它。 getIntent函数返回启动新活动的意图对象。 当有了新的Intent时,可以使用intent.getStringExtra(“ stringKey”)获得从旧活动传递来的额外字符串。 这使您可以在活动之间传递简单的数据。确保使用相同的密钥。
答案 1 :(得分:1)
您可以从主要活动中将数据放入意图中,并从数据的第二个活动中获得意图。 例如:
在您的MainActivity.class
Intent intent = new Intent(MainActivity.this, DetailActivity.class);
intent.putExtra("result", "Your result text here");
startActivity(intent);
在您的DetailsActivity.class
中:
Intent intent = getIntent();
String result = intent.getStringExtra("result");
qrResult.setText(result);
您甚至可以通过意图发送任何类型的对象。请在Google上搜索以获取更多信息。