如何使用putStringArrayListExtra()传递ArrayList

时间:2010-10-27 05:04:50

标签: android arraylist

您好我想将Arraylistactivity传递到另一个putStringArrayListExtra()。我使用"The method putStringArrayListExtra(String,ArrayList is undefined for the type bundle.",但显示错误:ArrayList是否还有其他方法可用于传递String test[]=new String[3]; ArrayList<String[]> al=new ArrayList<String[]>(); int x,y; test[0]="1"; test[1]="2"; test[2]="3"; al.add(test); test = new String[3]; test[0]="4"; test[1]="5"; test[2]="6"; al.add(test); Bundle list_bundle=new Bundle(); list_bundle.putStringArrayListExtra("lists",al); Intent list_intent= new Intent(v.getContext(), view_all_selected.class); list_intent.putExtras(list_bundle); startActivityForResult(list_intent, 2);

{{1}}

4 个答案:

答案 0 :(得分:13)

尝试下面的一个将1-D数组传递给附加组件中的Arraylist

ArrayList<String> al = new ArrayList<String>();
String arr[] = {"Zero", "One", "Two"}; 
//Convert string array to a collection 
Collection l = Arrays.asList(arr);
al.addAll(l); 
i.putStringArrayListExtra("ar", al);

答案 1 :(得分:12)

试试这个对我有用

第一项活动

ArrayList<String> ar=new ArrayList<String>();
ar.add("Apple");
ar.add("Banana");

Intent i=new Intent(this,Route.class);
i.putStringArrayListExtra("list", ar);
startActivity(i);

第二项活动

ArrayList<String> ar1=getIntent().getExtras().getStringArrayList("list");   

答案 2 :(得分:3)

第一项活动:

 ArrayList<String> al = new ArrayList<String>();
    int ROWS = 2;
                        int COLS = 1;
                        String[][] a2 = new String[ROWS][COLS];
                        a2[0][0]="one";
                        a2[1][0]="two";
                        for(int i=0;i<ROWS;i++)
                        {
                            for(int j=0;j<COLS;j++)
                            {
                                al.add(a2[i][j]);
                            }
                        }
     i.putStringArrayListExtra("ar", al);
                        i.putExtra("ROWS", ROWS);
                        i.putExtra("COLS", COLS);

第二项活动:

ArrayList<String> test = new ArrayList<String>();
test=getIntent().getExtras().getStringArrayList("ar");
        int ROWS=getIntent().getExtras().getInt("ROWS");
        int COLS=getIntent().getExtras().getInt("COLS");
        String[][] a2 = new String[ROWS][COLS];
        int index=0;
        for(int i=0;i<ROWS;i++)
        {
            for(int j=0;j<COLS;j++)
            {
                a2[i][j]=test.get(index++);
            }
        }

答案 3 :(得分:1)

您必须定义String类型的ArrayList。你不能在putStringArrayListExtra中传递Generic ArrayList。 下面是正确的代码。

-----
ArrayList<String> al = new ArrayList<String>();
------
-------
 list_bundle.putStringArrayListExtra("lists",al); 
------

现在在其他活动中访问此ArrayList。

ArrayList<String> cl= new ArrayList<String>();
cl =getIntent().getExtras().getStringArrayList("lists");