【问题标题】:Value of Toast to TextView of second activityToast 对第二个活动的 TextView 的值
【发布时间】:2019-04-27 03:50:40
【问题描述】:

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



}
}

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

【问题讨论】:

    标签: java android android-studio android-toast


    【解决方案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);
    

    您甚至可以通过意图发送任何类型的对象。请在谷歌上搜索更多信息。

    【讨论】:

      【解决方案2】:

      您需要创建一个新的 Intent 对象,并使用 intent.putextra() 添加额外的数据。此方法可以将 String 对象作为参数。您需要为该字符串指定一个唯一键。然后开始新的活动。例如 Intent i = new Intent(context, nextactivity.class) i.putextra(“stringKey”,yourString) 开始活动(i)

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-27
        • 1970-01-01
        • 1970-01-01
        • 2019-07-05
        • 1970-01-01
        • 2018-09-28
        • 1970-01-01
        相关资源
        最近更新 更多