0

私は1つのAndroidアプリケーションを開発しました。ここでは、1 番目のアクティビティから 3 番目のアクティビティに値を渡す必要があります。

正常に開発された 1 番目のアクティビティから 2 番目のアクティビティに値が渡されますが、2 番目のアクティビティから 3 番目のアクティビティに値を渡すことができません。

これは私の最初の活動です:

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

2 番目のアクティビティ:

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 番目のアクティビティに正常に渡されます。これらの値を 3 番目のアクティビティに渡す必要があります。どうすればよいですか。

これが私の 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);

}

これは私の 3 番目のアクティビティです。

    Bundle b = getIntent().getExtras();

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

今、私はアプリを実行する必要があります.2番目のアクティビティで合計値を取得していますが、3番目のアクティビティで合計値を取得していません.助けてください.

4

7 に答える 7

0

このより良い解決策は、Androidで共有設定を使用することです。共有設定に値を保存し、3番目のアクティビティでその値を取得して、要件に従って使用します。

詳細:共有設定の例

于 2012-12-22T05:47:57.963 に答える
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);

2 番目のアクティビティ:

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

これは私の 3 番目のアクティビティです。

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 に答える