我正在使用FragmentPagerAdapter滑动Fragment和使用AsyncTask来更新 gridview,但它不更新 UI。
它没有更新 UI,也没有抛出任何错误我试图检查流程及其运行的 GalleryTab 片段两次......并且无法理解问题。
我的代码:-
public class GalleryTab extends Fragment {
            GridView gridview;
            ProgressDialog mProgressDialog;
            GridViewAdapter adapter;
            public List<GalleryList> phonearraylist = null;
            View view;
            private WeakReference<RemoteDataTask> asyncTaskWeakRef;
        public static Fragment newInstance(Context context) {
            GalleryTab f = new GalleryTab();
        return f;
        }
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            view = inflater.inflate(R.layout.activity_gallery_tab, null);
             setRetainInstance(true);
                startNewAsyncTask();
            //new RemoteDataTask(this).execute();
            return inflater.inflate(R.layout.activity_gallery_tab, container, false);
        }
        // RemoteDataTask AsyncTask
            private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
                private WeakReference<GalleryTab> fragmentWeakRef;
                private RemoteDataTask (GalleryTab gallerytab) {
                    this.fragmentWeakRef = new WeakReference<GalleryTab>(gallerytab);
                }
                @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                } 
                @Override
                protected Void doInBackground(Void... params) {
                    // Create the array
                    phonearraylist = new ArrayList<GalleryList>();
                    try {
                        for (int i = 0; i <= 6; i++) {
                            GalleryList map = new GalleryList();
                            map.setGallery("http://oi39.tinypic.com/21oydxs.jpg");
                            System.out.println("PRINT!!!!--  "+ i);
                            phonearraylist.add(map);
                        }
                    } catch (ParseException e) {
                        Log.e("Error", e.getMessage());
                        e.printStackTrace();
                    }
                    return null;
                }
                @Override
                protected void onPostExecute(Void result) {
                    // if (this.fragmentWeakRef.get() != null) {
                    adapter = new GridViewAdapter(getActivity(), phonearraylist);
                    System.out.println("PRINT SIZE --  "+ phonearraylist.size());
                    gridview = (GridView)view.findViewById(R.id.gridview);
                    gridview.setAdapter(adapter);
                //  mProgressDialog.dismiss();
                    // }
                }
            }
            private void startNewAsyncTask() {
                RemoteDataTask asyncTask = new RemoteDataTask(this);
                this.asyncTaskWeakRef = new WeakReference<RemoteDataTask >(asyncTask );
                asyncTask.execute();
            }
    }