我们如何使用bundle将两个ArrayList从一个Activity传递到另一个Activity

时间:2011-08-19 11:56:51

标签: java android arraylist android-intent bundle

我想将两个ArrayList项从我的主活动传递给我使用的另一个活动。但每次,它只将最后一项传递给每个ArrayList。如何在一个intent和bundle中传递两个ArrayList项?

-ResponseActivity.java -

//buttonStatusListener()

private OnClickListener buttonStatusListener = new OnClickListener() 
{
    public void onClick(View v)
    {
        Intent i1 = new Intent(ResponseActivity.this, StatusActivity.class);

        ArrayList<String> code = new ArrayList<String>(); 
        code = parseddata.getCode();
        ArrayList<String> request = new ArrayList<String>();
        request = parseddata.getRequest();

        Bundle b = new Bundle();
        b.putStringArrayList(StatusActivity.TEXT_REQUEST, request);
        b.putStringArrayList(StatusActivity.TEXT_CODE, code);



        i1.putExtras(b);

        startActivity(i1);
    }
};

- 状态活动 -

public class StatusActivity extends Activity{


 ParsedDataList parseddata = null;

public static String TEXT_CODE;
public static String TEXT_REQUEST;

/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    parseddata = MyXMLHandler.getExampledata();

    TextView textCode[] = new TextView[parseddata.getCode().size()];
    TextView textRequest[] = new TextView[parseddata.getRequest().size()];

    Bundle extras = getIntent().getExtras();
    ArrayList<String> code = new ArrayList<String>();
    code = extras.getStringArrayList(TEXT_CODE);
    ArrayList<String> request = new ArrayList<String>();
    request = extras.getStringArrayList(TEXT_REQUEST);

    LinearLayout lLayout = new LinearLayout(this);
    lLayout.setOrientation(1);


    for(int i = 0; i < parseddata.getRequest().size(); i++)
    {
        textCode[i] = new TextView(this);
        textCode[i].setText("Code: " + code.get(i));

        textRequest[i] = new TextView(this);
        textRequest[i].setText("Request: " + request.get(i));

        lLayout.addView(textCode[i]);
        lLayout.addView(textRequest[i]);
    }

        setContentView(lLayout);
}

ParsedDataList是我保存数据的数据类。他们的类型也是ArrayList<String>

最后,我的结果是:

Code: 200
Request: 200

2 个答案:

答案 0 :(得分:1)

你可以轻松传递。只需要两个键不同。你可以使用这些键获得这些值。

答案 1 :(得分:0)

您没有填写TEXT_CODE和TEXT_REQUEST键。使用不同的值设置这些变量,以正确的方式使用它们。