gpt4 book ai didi

java - 解析 Fragment 上的 XML 时出错

转载 作者:行者123 更新时间:2023-12-01 22:21:21 26 4
gpt4 key购买 nike

我正在使用 NavigationDrawer 制作一个简单的 RSS 阅读器。我使用 RssParserSaxRSS 处理程序完成了一个 Parser 类。当我执行 AsynTask 时,我的应用程序崩溃了。我的日志猫:

 java.lang.NullPointerException
at me.apps.rss.News$LoadXMLTask.onPostExecute(CNews.java:53)
at me.apps.rss.News$LoadXMLTask.onPostExecute(CNews.java:45)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)

还有我的查看代码。请注意,该任务仅在我按下按钮时执行。

public class News extends android.support.v4.app.Fragment {
private List<whatsnew> news;
private TextView txtresult;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v=inflater.inflate(R.layout.lay_news, container, false);
Button but = (Button) v.findViewById(R.id.but);

but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LoadXMLTask task1 = new LoadXMLTask();
task1.execute("http://www.feedforall.com/sample-feed.xml");
}
});



return v;
}

private class LoadXMLTask extends AsyncTask<String, Integer, Boolean> {
protected Boolean doInBackground (String ... params){
RssParserSax saxparser= new RssParserSax(params[0]);
news = saxparser.parse();
return true;
}

protected void onPostExecute (Boolean result){
txtresult.setText("");
for(int i=0; i<news.size(); i++)
{
//nothing
}
}

}
}

最佳答案

txtresult.setText("");

这就是问题所在,引用可能为null

实际上,堆栈跟踪中的这两行可以准确地告诉您问题是什么:

at me.apps.rss.News$LoadXMLTask.onPostExecute(CNews.java:53)
at me.apps.rss.News$LoadXMLTask.onPostExecute(CNews.java:45)

CNews.java中的第45、53行是抛出异常的地方。如果您查看这一行,您就会知道哪个引用是 null

所以解决方案是在onCreateView内部添加:

 txtresult = (TextView) v.findViewById(R.id.your_id);

关于java - 解析 Fragment 上的 XML 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29718982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com