Toast 到第二个 TextView 的值 activity

Value of Toast to TextView of second activity

这是我的 MainActivity.java,我想要另一个 activity 的文本视图中的结果?我怎样才能实现它?你能给我举个例子吗?

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

这是我的第二个Activity。我想显示结果的地方。

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



}
}

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

您需要创建一个新的 Intent 对象,并使用 intent.putextra() 添加额外的数据。此方法可以将 String 对象作为参数。您需要为 string.Then 启动新的 activity 指定一个唯一键。例如 意图 i = 新意图(上下文,nextactivity.class) i.putextra(“stringKey”,yourSstring) 开始活动(i)

然后,在第二个activity中,你需要获取启动那个activity的intent(使用getIntent),你可以在onCreate的时候使用它。 getIntent 函数 returns 启动新 activity 的意图对象。 当你有新的意图时,你可以得到你从旧的 activity 传递的额外字符串,用 intent.getStringExtra(“stringKey”) 这允许您在活动之间传递简单数据。确保使用相同的密钥。

您可以将主要活动中的数据放入意图中,然后从第二个 activity 中获取数据的意图。 例如:

在你的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);

您甚至可以通过 Intent 发送任何类型的对象。请google它了解更多信息。