所以我有一个我已经工作了一段时间的程序。但是,我坚持使用XmlPullParser
的方法,该方法称为getAllXml()
。它位于doInBackGround()
的{{1}}方法内。 AsyncTask
是名为AsyncTask
的Activity的子类。当我运行代码时。
以下是代码应该执行的操作。用户从之前的活动中选择FormActivity
后。名为"CloverField"
的xml文件由cloverfield_in.xml
调用。然后用户按下同一个xml文件上的按钮。单击此按钮可执行名为setContentView()
的{{1}}。在此AsyncTask
中,这只有两种方法,MadLIbAsyncTask
和AsyncTask
。 (我不知道我是否需要doInBackground()
...其中我会有一个进度条......但是如果没有这种方法,我认为程序不应该像它那样崩溃)。
在onPostExecute()
方法中,我调用名为onPreExecute()
的方法。此方法使用doInBackground()
搜索当前的xml(getAllXml()
)并从单个XmlPullParser
中捕获文本。 cloverfield_in.xml
的代码如下。
TextView
在调试过程中,我的程序通常会返回getAllXml()
或public void getAllXml() throws XmlPullParserException, IOException{
Activity activity = this;
Resources res = activity.getResources();
XmlResourceParser xpp = res.getXml(R.layout.cloverfield_in);
int eventtype = xpp.getEventType();
while (eventtype != XmlPullParser.END_DOCUMENT){
if (eventtype == XmlPullParser.START_DOCUMENT){
}
else if (eventtype == XmlPullParser.START_TAG){
if (xpp.getName() == "TextView"){
while (eventtype != XmlPullParser.END_TAG){
if (eventtype == XmlPullParser.TEXT){
stringViews[0] = xpp.getText();
}else {}
eventtype = xpp.next();
}
}else {}
}
else if (eventtype == XmlPullParser.END_TAG){
}
else if (eventtype == XmlPullParser.TEXT){
}
eventtype = xpp.next();
}
}
。我相信在这段代码中是问题所在。我测试了NullPointerException
而没有RunTimeException
方法的存在,一切正常。最终程序应该从AsyncTask
文件中收集文本并将其显示在名为getAllXml()
的新文件中。
要对所有内容进行全面审核,请参阅cloverfield_in.xml
的完整代码。
cloverfield_out.xml
另外,最重要的是...... logcat看起来像这样:
FormActivity.class