そのため、Viewpager とスワイプを使用するアプリがあります。リストビューを含む 3 つのフラグメントと、行を設定するためのカスタム アダプターを取得しました。
各フラグメントには、asynctask を呼び出して JSON をフェッチするメソッドがあります。このメソッドは onActivityCreated で実行します。
アプリを起動すると、すべてが正常に機能し、進行状況ダイアログが表示され、すべてのリストが正しいデータで設定されています。
問題は、アクションバーの更新ボタンをクリックしたときにすべてのリストを更新できるようにしたいことです (新しいツイートを確認するため)。
更新ボタンを使用できる唯一の方法は、MainActivity で onOptionsItemSelected() を使用する場合です。
だから私は考えています.asynctaskを再度呼び出すメソッドを呼び出すことができます.
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 を再度取得してリストに表示したいと思います。