我想将两个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
答案 0 :(得分:1)
你可以轻松传递。只需要两个键不同。你可以使用这些键获得这些值。
答案 1 :(得分:0)
您没有填写TEXT_CODE和TEXT_REQUEST键。使用不同的值设置这些变量,以正确的方式使用它们。