Fanakartal
Fanakartal

Reputation: 15

How we can pass two ArrayList from one Activity to another with using bundles

I want to pass two ArrayList items from my main activity to another activity i used. but everytime, it passes only last item to each of the ArrayList. how can i pass two ArrayList item in one intent and bundle?

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

-Status Activity-

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 is my data class which i hold my data. Their types are also ArrayList<String>.

At the end, my result is:

Code: 200
Request: 200

Upvotes: 0

Views: 1374

Answers (2)

Android Killer
Android Killer

Reputation: 18499

You can easily pass.Just the the two keys should be different.You can get those value using those keys.

Upvotes: 1

Mahdi Hijazi
Mahdi Hijazi

Reputation: 4454

You didn't fill the keys TEXT_CODE and TEXT_REQUEST. Set these variables with different values to use them in the correct way.

Upvotes: 0

Related Questions