2

我开发了一个安卓应用程序。

这是我的第一个活动:

public class ViewCartActivity extends Activity {

String mGrandTotal;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewcartactivity);

    ListView mLstView1 = (ListView) findViewById(R.id.listView1);
    TextView mTxtViewGrandTotal = (TextView) findViewById(R.id.mTxtViewGrandTotalValue);
    Button mBtnSubmit = (Button) findViewById(R.id.mBtnSubmit);

    ViewCartAdapter mViewCartAdpt = new ViewCartAdapter(
            ViewCartActivity.this);

    mLstView1.setAdapter(mViewCartAdpt);

    if (Constants.mItem_Detail.size() > 0) {
        Double mGTotal = Double.parseDouble(Constants.mItem_Detail.get(0)
                .get(SingleMenuItem.KEY_TOTAL));
        for (int i = 1; i < Constants.mItem_Detail.size(); i++) {
            mGTotal = mGTotal
                    + Double.parseDouble(Constants.mItem_Detail.get(i).get(
                            SingleMenuItem.KEY_TOTAL));
        }

        mGrandTotal = String.valueOf(mGTotal);
        mTxtViewGrandTotal.setText("$" + mGrandTotal);
    }

    mBtnSubmit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

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

        }
    });

这是我的第二个活动:

setContentView(R.layout.customer_login);

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

在这里,我必须运行该应用程序意味着第一次活动获得 45.32 美元。我必须将这些 45.32 美元传递给下一个活动,这意味着我将获得空值。

我怎样才能清除这些错误。请帮助我如何将值从第一个活动传递到下一个活动。

4

4 回答 4

2

更改getIntent().getExtras().getString(total) 为:

getIntent().getStringExtra("GrandTotal"); 

或者

String total = in.getStringExtra("GrandTotal");
grandtotal.setText("Welcome ," + total);
于 2012-12-21T09:18:46.110 回答
1
FirstActivity

public class ViewCartActivity extends Activity {

String mGrandTotal;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewcartactivity);

    ListView mLstView1 = (ListView) findViewById(R.id.listView1);
    TextView mTxtViewGrandTotal = (TextView) findViewById(R.id.mTxtViewGrandTotalValue);
    Button mBtnSubmit = (Button) findViewById(R.id.mBtnSubmit);

    ViewCartAdapter mViewCartAdpt = new ViewCartAdapter(
            ViewCartActivity.this);

    mLstView1.setAdapter(mViewCartAdpt);

    if (Constants.mItem_Detail.size() > 0) {
        Double mGTotal = Double.parseDouble(Constants.mItem_Detail.get(0)
                .get(SingleMenuItem.KEY_TOTAL));
        for (int i = 1; i < Constants.mItem_Detail.size(); i++) {
            mGTotal = mGTotal
                    + Double.parseDouble(Constants.mItem_Detail.get(i).get(
                            SingleMenuItem.KEY_TOTAL));
        }

        mGrandTotal = String.valueOf(mGTotal);
        mTxtViewGrandTotal.setText("$" + mGrandTotal);
    }

    mBtnSubmit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub


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

        }
    });


SecondActivity

setContentView(R.layout.customer_login);

  Bundle b = getIntent().getExtras();
       String total = b.getString("GrandTotal");
    TextView grandtotal = (TextView) findViewById(R.id.grand_total);
     grandtotal.setText("Welcome ," + total );
于 2012-12-21T10:07:50.957 回答
0

只是改变

grandtotal.setText("Welcome ,"+getIntent().getExtras().getString(total));

grandtotal.setText("Welcome ,"getIntent().getExtras().getString(GrandTotal));

在第二个活动中。

并删除

String s= getIntent().getStringExtra(mGrandTotal);

它应该是

i.putExtra("GrandTotal", mGrandTotal);

从按钮单击事件的第一个活动开始。因为 mGrandTotal 是本地活动变量。所以你不需要从意图中得到它

于 2012-12-21T09:18:24.703 回答
0

要么将值存储在一个活动中的共享偏好中,然后从另一活动中的相同偏好中获取值。

存储在首选项中

          SharedPreferences preferences=getSharedPreferences(preferencename, MODE_PRIVATE);
          Editor preferenceEditor=preferences.edit();

          preferenceEditor.putString(key,value);
          preferenceEditor.putInt(key,value);
          preferenceEditor.commit();

从偏好中获取

         preferences=getSharedPreferences(config_prop.getConfigValue("sharedprefs"), MODE_PRIVATE);
         String str=preferences.getString(key, defaultValue);

您也可以使用意图传递值。

于 2012-12-21T09:19:57.803 回答