在android中将值从第1个传递到第三个

时间:2012-12-21 11:20:07

标签: java android android-intent bundle pass-data

我开发了一个Android应用程序。 在这里,我必须将第一个活动的值传递给第三个活动。

这个值从成功开发的第1个活动传递到第2个活动。但是我无法将值从第2个活动传递到第3个活动。请帮助我如何开发这些活动。请帮助我。

这是我的第一项活动:

     Intent i = new Intent(getApplicationContext(), CustomerLogin.class);
                i.putExtra("GrandTotal", mGrandTotal);
                startActivity(i);

第二项活动:

Intent in = getIntent();
Bundle b = getIntent().getExtras();
String total = b.getString("GrandTotal");
TextView grandtotal = (TextView) findViewById(R.id.grand_total);
 grandtotal.setText("Welcome ," + total );

此处值成功从第1个活动传递到第2个活动。 现在我必须将这些值传递给第三个活动。我能做什么。

现在这是我的第二项活动:

if(isUserValidated && isPasswordValidated)
{
    String s= getIntent().getStringExtra(total);
    Intent intent = new Intent(CustomerLogin.this,PayPalIntegrationActivity.class);
    intent.putExtra("GrandTotal", s);
    intent.putExtra("login",username.getText().toString());
    startActivity(intent);

}

这是我的第三项活动:

    Bundle b = getIntent().getExtras();

    String total = b.getString("GrandTotal");
    TextView grandtotal = (TextView) findViewById(R.id.check);
    grandtotal.setText("Welcome ," + total );

现在我必须运行应用程序意味着我获得了第二个活动的总价值。但是我没有得到第三个活动的总价值。请帮助我。这里我做错了。

7 个答案:

答案 0 :(得分:0)

使用简单的静态变量。或者为此目的共享偏好。

答案 1 :(得分:0)

if(isUserValidated && isPasswordValidated)
{
  String s= getIntent().getStringExtra(total);// problem is here
  ....// In second activity
}

更改为String s= getIntent().getStringExtra("GrandTotal");

答案 2 :(得分:0)

 Intent i = new Intent(getApplicationContext(), CustomerLogin.class);
 i.putExtra("GrandTotal", mGrandTotal);
 startActivity(i);

第二项活动:

Bundle b = getIntent().getExtras();
String total = b.getString("GrandTotal");
TextView grandtotal = (TextView) findViewById(R.id.grand_total);
grandtotal.setText("Welcome ," + total );   

  if(isUserValidated && isPasswordValidated)  {      
      Intent intent = new Intent(CustomerLogin.this,PayPalIntegrationActivity.class);
      intent.putExtra("GrandTotal", total);
      intent.putExtra("login",username.getText().toString());
      startActivity(intent);    
    }

这是我的第三项活动:

Bundle b = getIntent().getExtras();    
String total = b.getString("GrandTotal");
String name = b.getString("login");
TextView grandtotal = (TextView) findViewById(R.id.check);
grandtotal.setText("Welcome ," + total );

答案 3 :(得分:0)

替换

 if(isUserValidated && isPasswordValidated)
    {
        String s= getIntent().getStringExtra(total); // Replace this line
        Intent intent = new Intent(CustomerLogin.this,PayPalIntegrationActivity.class);
        intent.putExtra("GrandTotal", s);
        intent.putExtra("login",username.getText().toString());
        startActivity(intent);

    }

String s= getIntent().getStringExtra("GrandTotal");

答案 4 :(得分:0)

如果您需要传递完全相同的值,可以使用:

Intent intent = new Intent(CustomerLogin.this,PayPalIntegrationActivity.class);
intent.putextras(this.getIntent.getExtras());

答案 5 :(得分:0)

thired activity

中尝试此操作

修改:

if(getIntent().getStringExtra("GrandTotal")!= null)
{
      String total =getIntent().getStringExtra("GrandTotal"); <---------------
      TextView grandtotal = (TextView) findViewById(R.id.check);
      grandtotal.setText("Welcome ," + total );
}

答案 6 :(得分:0)

对于这个更好的解决方案是在android中使用共享首选项。 将您的价值存储在共享偏好中,并在第3个活动中获取该值并根据您的要求使用它。

更多详情:Example of Shared Preference