我一直在尝试将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());
答案 0 :(得分:1)
看起来你正在放置String
数组,而不是ArrayList<String>
。
答案 1 :(得分:0)
您在“发送方”一侧使用了字符串数组,并尝试将其作为ArrayList
在接收方端返回。那不行。在两侧使用String
数组,如果需要,将其拉入数组列表。
传递数据的过程如下:
Passing String array between two class in android application
要将其转换为List,只需执行以下操作:
List<String> = Arrays.asList(stringArray);