Android xmlparsing并将数据放入listview
我有两个安卓的活动课。主活动类包含xml解析,我试图将从中获取的数据传递给另一个活动类,该类将把它放入所有数据的listview中。下面是xml解析的主要活动,问题是,当我运行程序时,它显示nullpointer异常。我被困在这里谁能帮我一下哪里出了错。提前通知Android xmlparsing并将数据放入listview,android,listview,xml-parsing,Android,Listview,Xml Parsing,我有两个安卓的活动课。主活动类包含xml解析,我试图将从中获取的数据传递给另一个活动类,该类将把它放入所有数据的listview中。下面是xml解析的主要活动,问题是,当我运行程序时,它显示nullpointer异常。我被困在这里谁能帮我一下哪里出了错。提前通知 enter code here /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInst
enter code here
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
try {
stringXmlContent = getEventsFromAnXML(this);
Intent i=new Intent(LocationSidActivity.this,FacebookData.class);
i.putStringArrayListExtra("language", stringXmlContent);
startActivity(i);
// myXmlContent.setText(stringXmlContent);
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private ArrayList<String> getEventsFromAnXML(Activity activity)
throws XmlPullParserException, IOException {
ArrayList<String> al = new ArrayList<String>();
Resources res = activity.getResources();
XmlResourceParser xpp = res.getXml(R.xml.myxml);
xpp.next();
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_DOCUMENT) {
al.add(xpp.getName());
} else if (eventType == XmlPullParser.START_TAG) {
//if ((xpp.getName()).compareTo("id") != 0) {
al.add(xpp.getName());
//} else {
//eventType = xpp.next();
}
else if (eventType == XmlPullParser.TEXT) {
al.add(xpp.getText());
}
eventType = xpp.next();
}
return al;
}
在此处输入代码
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
试一试{
stringXmlContent=getEventsFromAnXML(此);
意向i=新意向(LocationSidActivity.this,FacebookData.class);
i、 putStringArrayListExtra(“语言”,stringXmlContent);
星触觉(i);
//myXmlContent.setText(stringXmlContent);
}catch(XMLPullParseRexE){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
私有ArrayList getEventsFromAnXML(活动)
引发XmlPullParserException,IOException{
ArrayList al=新的ArrayList();
Resources res=activity.getResources();
XmlResourceParser xpp=res.getXml(R.xml.myxml);
xpp.next();
int eventType=xpp.getEventType();
while(eventType!=XmlPullParser.END_文档){
if(eventType==XmlPullParser.START\u文档){
al.add(xpp.getName());
}else if(eventType==XmlPullParser.START_标记){
//if((xpp.getName()).compareTo(“id”)!=0){
al.add(xpp.getName());
//}否则{
//eventType=xpp.next();
}
else if(eventType==XmlPullParser.TEXT){
al.add(xpp.getText());
}
eventType=xpp.next();
}
返回al;
}
}解析器方法中的行
getEventsFromAnXML
:
if (eventType == XmlPullParser.START_DOCUMENT)
{
al.add(xpp.getName());
}
可能会以NullPointerException
结束,因为尚未读取任何内容,而null
值将添加为ArrayList
的第一个成员
API文档中的XmlPullParser.START_文档:
通知解析器位于文档的最开头,然后
还没有读到什么。此事件类型只能通过调用
第一次调用next()、nextToken或nextTag()之前的getEvent()
另外,如果getEventsFromAnXML
方法在活动
类中,则应删除该参数,只需使用此
。共享上下文从来都不是一个好的做法,它通常会导致泄漏 请把你的日志放在这里。我们需要知道null元素在哪里才能解决您的问题。