我试图从一个活动一次发送两个捆绑到另一个活动我没有运气..我可以发送捆绑确定但是当我尝试两个发送两个我得到一个空指针。 继承我的代码:
Activity A,
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TextView name = (TextView) v.findViewById(R.id.label2);
TextView number1 = (TextView) v.findViewById(R.id.label);
Intent i = new Intent(this, options_Page.class);
// Bundle bundle2 = new Bundle();
Bundle bundle1 = new Bundle();
bundle1.putString("title", number1.getText().toString());
// bundle2.putString("title2", name.getText().toString());
i.putExtras(bundle1);
// i.putExtras(bundle2);
startActivity(i);
Activity B,
Bundle bundle1 = this.getIntent().getExtras();
// Bundle bundle2 = this.getIntent().getExtras();
String title = bundle1.getString("title");
// String title2 = bundle2.getString("title2");
((TextView) findViewById(R.id.tvnumber)).setText(title);
// ((TextView) findViewById(R.id.tvname)).setText(title2);
使用此代码,因为现在它发送一个包(数字)没有问题,如果有人知道我如何发送另一个(名称)它真的会帮助我。 提前谢谢......
答案 0 :(得分:4)
您可以send more then one bundle
但是根据您当前情况的需要,您不需要它,只需使用一个,
试试这个,不需要2个捆绑,
在活动A中,
Intent i = new Intent(this, options_Page.class);
i.putExtras("title", number1.getText().toString());
i.putExtras("number", number2.getText().toString());
startActivity(i);
在活动B中,
String value1 = getIntent().getExtras("title");
String value2 = getIntent().getExtras("number");
或
Bundle extras = getIntent().getExtras();
if (extras == null) {
return;
}
String value1 = extras.getString("title");
String value2 = extras.getString("number");
感谢。
答案 1 :(得分:2)
首先你不需要传递两个包但是对于你的问题我在我的结尾检查了你can pass 2 or more than 2 bundle
。
您需要像这样提取包值:
Bundle bundle1 = getIntent().getBundleExtra("bun1");
boolean value1 = bundle1.getBoolean("value1");
Bundle bundle2 = getIntent().getBundleExtra("bun2");
boolean value2 = bundle2.getBoolean("value2");