0

我已经开发了一个 android 应用程序。在这里,我必须将值从第一个活动传递到第三个活动。

该值已成功从第一个活动传递到第二个活动。但我无法将第二个活动的值传递到第三个活动。请帮助我如何开发这些。请帮助我。

这是我的第一个活动:

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

这里的值是从第一个活动成功传递到第二个活动。现在我必须将这些值传递给第三个活动。我该怎么做。

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

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

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

4

7 回答 7

0

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

于 2012-12-21T11:22:16.140 回答
0
if(isUserValidated && isPasswordValidated)
{
  String s= getIntent().getStringExtra(total);// problem is here
  ....// In second activity
}

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

于 2012-12-21T11:22:56.217 回答
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 );
于 2012-12-21T11:23:40.553 回答
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");
于 2012-12-21T11:23:45.610 回答
0

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

Intent intent = new Intent(CustomerLogin.this,PayPalIntegrationActivity.class);
intent.putextras(this.getIntent.getExtras());
于 2012-12-21T11:24:11.870 回答
0

在你的第三个活动中试试这个

编辑 :

if(getIntent().getStringExtra("GrandTotal")!= null)
{
      String total =getIntent().getStringExtra("GrandTotal"); <---------------
      TextView grandtotal = (TextView) findViewById(R.id.check);
      grandtotal.setText("Welcome ," + total );
}
于 2012-12-21T11:25:41.800 回答
0

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

更多详细信息:共享偏好示例

于 2012-12-22T05:47:57.963 回答