将ArrayList从一个Activity传递到另一个Activity的问题

时间:2011-05-22 18:47:16

标签: android arraylist android-intent

我一直在尝试将ArrayList从一个Activity传递到另一个Activity时遇到问题。当我尝试遍历XMLParser类中的ArrayList时,我的代码失败并出现Null Pointer Exception。我已将print语句放入生成ArrayList的Activity中,看起来很好。任何人都可以看到我做错了什么或为什么我在检索ArrayList时得到Null指针异常?

public void onClick(View v) {
    if (selItemArray[0] == null) {
        Toast.makeText(getApplicationContext()," Please make a Selection ", Toast.LENGTH_SHORT).show();
    } else {
        Intent intent = new Intent(Recipes2.this, XMLParser.class);
        Log.v("Recipes2", "selItemArray[0] before call to XML Parser : " + selItemArray[0]);
      //Log.v("Recipes2", "selItemArray[1] before call to XML Parser : " + selItemArray[1]);    
        intent.putExtra("items_to_parse",  selItemArray);
        startActivityForResult(intent, 0);              
    }
}




public class XMLParser extends ListActivity {
            /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Bundle b = getIntent().getExtras();
        //itemsToParse = b.getStringArrayList("items_to_parse");
        ArrayList<String> itemsToParse = new ArrayList<String>();
        itemsToParse = getIntent().getExtras().getStringArrayList("items_to_parse");        Iterator<String> iterator = itemsToParse.iterator();            while(iterator.hasNext())
                Log.v("XMLParser", iterator.next().toString());

2 个答案:

答案 0 :(得分:1)

看起来你正在放置String数组,而不是ArrayList<String>

答案 1 :(得分:0)

您在“发送方”一侧使用了字符串数组,并尝试将其作为ArrayList在接收方端返回。那不行。在两侧使用String数组,如果需要,将其拉入数组列表。

传递数据的过程如下:

Passing String array between two class in android application

要将其转换为List,只需执行以下操作:

List<String> = Arrays.asList(stringArray);