Toast对第二项活动的TextView的价值

时间:2018-11-25 06:32:44

标签: java android android-studio android-toast

这是我的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);



}
}

如果您愿意,我也可以发布我的布局文件。谢谢。

2 个答案:

答案 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上搜索以获取更多信息。