所以,我有一个使用 Viewpager 和刷卡的应用程序。我得到了 3 个片段,其中包含一个列表视图和一个用于设置行的自定义适配器。
在每个片段中,我都有一个调用 asynctask 并获取 JSON 的方法。我在 onActivityCreated 中运行这个方法。
当我启动应用程序时,一切正常,进度对话框显示,并且所有列表都设置了正确的数据。
问题是我希望能够在单击操作栏中的刷新按钮时刷新所有列表(以检查新推文)。
我能够使用刷新按钮的唯一方法是在 MainActivity 中使用 onOptionsItemSelected()。
所以我在想,我可以调用那些再调用异步任务的方法。
case R.id.menu_refresh:
MSFTHost host = new MSFTHost();
host.getTweets();
...
但是当我点击按钮时,整个事情就关闭了:
02-05 21:46:57.959: W/dalvikvm(15292): threadid=1: thread exiting with uncaught exception (group=0x40d5a930)02-05 21:46:58.045:
E/AndroidRuntime(15292): FATAL EXCEPTION: main
02-05 21:46:58.045: E/AndroidRuntime(15292): java.lang.NullPointerException
02-05 21:46:58.045: E/AndroidRuntime(15292): at com.sandan.HostingNorge.MSFTHost$DownloadWebPageTask.onPostExecute(MSFTHost.java:95)
02-05 21:46:58.045: E/AndroidRuntime(15292): at com.sandan.HostingNorge.MSFTHost$DownloadWebPageTask.onPostExecute(MSFTHost.java:1)
02-05 21:46:58.045: E/AndroidRuntime(15292): at android.os.AsyncTask.finish(AsyncTask.java:631)
02-05 21:46:58.045: E/AndroidRuntime(15292): at android.os.AsyncTask.access$600(AsyncTask.java:177)
02-05 21:46:58.045: E/AndroidRuntime(15292): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
02-05 21:46:58.045: E/AndroidRuntime(15292): at android.os.Handler.dispatchMessage(Handler.java:99)
02-05 21:46:58.045: E/AndroidRuntime(15292): at android.os.Looper.loop(Looper.java:137)
02-05 21:46:58.045: E/AndroidRuntime(15292): at android.app.ActivityThread.main(ActivityThread.java:5202)
02-05 21:46:58.045: E/AndroidRuntime(15292): at java.lang.reflect.Method.invokeNative(Native Method)
02-05 21:46:58.045: E/AndroidRuntime(15292): at java.lang.reflect.Method.invoke(Method.java:511)
02-05 21:46:58.045: E/AndroidRuntime(15292): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
02-05 21:46:58.045: E/AndroidRuntime(15292): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
02-05 21:46:58.045: E/AndroidRuntime(15292): at dalvik.system.NativeStart.main(Native Method)
第 95 行包含以下内容:
listItems.add(new GetListItems(oneObject.getString("text"),oneObject.getString("created_at"),obj
.getString("profile_image_url"), obj
.getString("screen_name")));
我尝试清除 listItems,但没有任何效果。
请问有什么帮助吗?
编辑:如果我不清楚,我想再次获取 JSON 并显示在列表中,就像第一次运行一样。