使用getExtra将值传递给另一个Activity

时间:2015-01-19 13:22:41

标签: java android

将问题传递给第二个活动页面时出现问题。

第一项活动能够举杯并显示pname

的值
Intent purchase = new Intent(getApplicationContext(), PurchaseActivity.class);                  
startActivity(purchase);
purchase.putExtra("productname", pname.getText().toString());
finish();  

第二项活动无法检索getStringExtra

    TextView test;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.purchase);

    test = (TextView) findViewById(R.id.textpurchaseitem);

    Intent intent = getIntent();
    test.setText(getIntent().getStringExtra("productname"));

4 个答案:

答案 0 :(得分:1)

您应该在startActivity之前写下以下行。

purchase.putExtra("productname", pname.getText().toString());

您在startActivity之后撰写,因此它不会将您的价值发送到其他活动,因为您的数据不会附加到您的意图中。所以你需要在startActivity之前打电话。

答案 1 :(得分:0)

修改您的第一个活动:

Intent purchase = new Intent(getApplicationContext(), PurchaseActivity.class);
purchase.putExtra("productname", pname.getText().toString());                  
startActivity(purchase);

finish();  

答案 2 :(得分:0)

startactivity应低于putextra,以便可以将值从第一个活动传递到其他

答案 3 :(得分:0)

这是您的解决方案

Intent purchase = new Intent(getApplicationContext(), PurchaseActivity.class);

purchase.putExtra("productname", pname.getText().toString());
startActivity(purchase);

finish();

Intent intent = getIntent();
if(getIntent().getStringExtra("productname")!=null)
    test.setText(getIntent().getStringExtra("productname"));