所以我有一个活动,通过Web服务获取XML文件。它读取XML并将该XML中的相关文本存储到名为xmlText的List<String>
对象中。在检索完所有文本后,我开始另一个活动,其中包含一个线性布局,线性布局内部是一个ListView。我通过填充一个名为xmlInString的ArrayList<String>
对象来传递xmlText的内容。然后我通过意图传递xmlInString。
我想填充listView以显示xml文件中的文本。在刚刚开始的活动中,我填充了一个List<String>
对象,其中包含xmlInString中的元素。然后我实例化arrayadapter,其中listview调用方法setAdapter()并传入arrayadapter对象。
但每次运行它时,我运行应用程序Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference
at com.w1481217.organiser.wordXMLList.populateList(wordXMLList.java:43)
这是我的代码:
public class wordXMLList extends Activity {
Intent i;
ListView lv;
ArrayAdapter<String> adapter;
ArrayList<String> xmlInString;
List<String> xml;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wordlisting);
i = getIntent();
xmlInString = i.getStringArrayListExtra("xml");
lv = (ListView) findViewById(R.id.listView2);
populateList(xmlInString);
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, xml);
lv.setAdapter(adapter);
}
private void populateList(ArrayList<String> xmlToConvert) {
for(int i =0; i < xmlToConvert.size(); i++){
xml.add(xmlToConvert.get(i));
Log.d("threading", "final output in xmlToConvert: " + xmlToConvert.get(i));
}
}
}
任何帮助将不胜感激。
答案 0 :(得分:-1)
Try this:
private void populateList(ArrayList<String> xmlToConvert) {
xml = new ArrayList<>();
for(int i =0; i < xmlToConvert.size(); i++){
xml.add(xmlToConvert.get(i));
Log.d("threading", "final output in xmlToConvert: " + xmlToConvert.get(i));
}
}