Android xmlparsing并将数据放入listview

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

我有两个安卓的活动课。主活动类包含xml解析,我试图将从中获取的数据传递给另一个活动类,该类将把它放入所有数据的listview中。下面是xml解析的主要活动,问题是,当我运行程序时,它显示nullpointer异常。我被困在这里谁能帮我一下哪里出了错。提前通知

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元素在哪里才能解决您的问题。