我开发了一个Android应用程序。
这是我的第一个活动:
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传递给下一个活动意味着我将获得null。
如何清除这些错误。请帮助我如何将第1个活动的值传递给下一个活动。
答案 0 :(得分:2)
更改getIntent().getExtras().getString(total)
到:
getIntent().getStringExtra("GrandTotal");
或者
String total = in.getStringExtra("GrandTotal");
grandtotal.setText("Welcome ," + total);
答案 1 :(得分: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 );
答案 2 :(得分: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是本地活动变量。所以你不需要从意图
获得它答案 3 :(得分: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);
您也可以使用意图传递值。