一次发送多个包

时间:2011-10-14 10:24:22

标签: android android-activity bundle

我试图从一个活动一次发送两个捆绑到另一个活动我没有运气..我可以发送捆绑确定但是当我尝试两个发送两个我得到一个空指针。 继承我的代码:

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

使用此代码,因为现在它发送一个包(数字)没有问题,如果有人知道我如何发送另一个(名称)它真的会帮助我。 提前谢谢......

2 个答案:

答案 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");