我自己编写了一个XMLParser来从xml获取某个字符串,在Java应用程序中测试它时一切正常,但是在android中执行它时会返回一个空值。我研究并发现我需要使用AsyncTask才能在单独的线程中调用Web服务。我做了,我仍然得到一个空值。这是代码
private class AsyncTaskRunner extends AsyncTask<String, String, String> {
private String resp;
@Override
protected String doInBackground(String... params) {
//publishProgress("Sleeping..."); // Calls onProgressUpdate()
XmlParser getP = new XmlParser();
resp = getP.getClo();
return resp;
}
@Override
protected void onPostExecute(String result) {
Log.d("Verify: ", "" + result);
}
}
我通过在对话框界面上进行OnClick来执行此操作: new AsyncTaskRunner()。execute(); 谢谢!
答案 0 :(得分:0)
下面的代码显然返回null。
XmlParser getP = new XmlParser();
resp = getP.getClo();
return resp;
自XmlParser getP = new XmlParser();
对象创建发生以及您尝试访问threr时只设置了没有值的对象
答案 1 :(得分:0)
在你的陈述中,XmlParser getP = new XmlParser();
你只创建了一个XmlParser,你还没有将它设置为一个值。在你用它做某事之前它实际上是无用的。有关XmlParser的更多信息,请参阅此文档 - http://groovy.codehaus.org/api/groovy/util/XmlParser.html