GridView上下拉刷新+Fragment

//布局主布局

<com.handmark.pulltorefresh.library.PullToRefreshGridView
        android:id="@+id/pull_to_refresh_gridview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"

        android:numColumns="2" />

//适配器布局

<ImageView
        android:id="@+id/fuli_item_pic"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:src="@mipmap/ic_launcher" />




//Fragment

public class FuLiFragment extends Fragment {
    private static final String TAG = "FuLiFragment---";
    private View view;
    private PullToRefreshGridView gridView;
    private int page = 1;
    private List<FuLiBean.ResultsBean> list = new ArrayList<>();
    private MyGridAdapter myListAdapter;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fuli_layout, null);
        initViews();
        return view;
    }

    private void initViews() {
        gridView = view.findViewById(R.id.pull_to_refresh_gridview);
        //开启下拉和上啦刷新
        gridView.setMode(PullToRefreshBase.Mode.BOTH);
        //设置监听
        gridView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
                //刷新
                page = 1;
                getDataFromNet();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
                //加载更多
                page++;
                getDataFromNet();
            }
        });
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        myListAdapter = new MyGridAdapter(getContext(), list);

        gridView.setAdapter(myListAdapter);


    }

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser){
            //请求网络数据数据
            getDataFromNet();
        }
    }

    private void getDataFromNet() {
        HttpUtils httpUtils = HttpUtils.getInstance();
        httpUtils.get(接口 + page);
        httpUtils.setHttpUtilsListener(new HttpUtils.HttpUtilListener() {
            @Override
            public void getSuccess(String json) {
                Log.d(TAG, "---数据---: " + json);
                Gson gson = new Gson();
                FuLiBean fuLiBean = gson.fromJson(json, FuLiBean.class);

                if (page == 1) {
                    list.clear();
                }

                list.addAll(fuLiBean.getResults());

                myListAdapter.notifyDataSetChanged();

                gridView.onRefreshComplete();

            }

            @Override
            public void getError(String error) {
                Log.d(TAG, "getError: " + error);
            }
        });
    }

    public static FuLiFragment create(String title) {
        Bundle bundle = new Bundle();
        bundle.putString("title", title);
        FuLiFragment f = new FuLiFragment();
        f.setArguments(bundle);
        return f;
    }
}





//适配器

public class MyGridAdapter extends BaseAdapter {

    private static final String TAG = "MyGridAdapter*****";

    private Context context;
    private List<FuLiBean.ResultsBean> list;

    public MyGridAdapter(Context context, List<FuLiBean.ResultsBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        MyViewHolder myViewHolder;
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.item_fuli, null);
            ImageView imageView = convertView.findViewById(R.id.fuli_item_pic);

            myViewHolder = new MyViewHolder(imageView);

            convertView.setTag(myViewHolder);

        } else {
            myViewHolder = (MyViewHolder) convertView.getTag();
        }

        //

        String url = list.get(position).getUrl();

        if (!TextUtils.isEmpty(url)){
            Log.d(TAG, "getView: "+url);
            ImageLoader.getInstance().displayImage(url, myViewHolder.getImageView(), MyApp.getOptions());

        }


        return convertView;
    }

    class MyViewHolder {
        private ImageView imageView;

        public MyViewHolder(ImageView imageView) {
            this.imageView = imageView;
        }

        public ImageView getImageView() {
            return imageView;
        }

        public void setImageView(ImageView imageView) {
            this.imageView = imageView;
        }

    }
}



猜你喜欢

转载自blog.csdn.net/aa15362415/article/details/80471734