PullToRefreshListView+ListView数据请求+Fragment

//布局主页面

<com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/pull_to_refresh_listview"
        android:layout_width="fill_parent"

        android:layout_height="fill_parent" />

//布局适配器数据

<ImageView
        android:id="@+id/item_android_pic"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/item_android_tv"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"

        android:text="标题"

        android:textSize="20sp" />




//Fragment

public class AndroidFragment extends Fragment {
    private static final String TAG = "AndroidFragment---";
    private View view;
    private PullToRefreshListView listView;
    private int page = 1;
    private List<AndroidBean.ResultsBean> list = new ArrayList<>();
    private MyListAdapter myListAdapter;


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

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

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

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

        listView.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();
                AndroidBean androidBean = gson.fromJson(json, AndroidBean.class);

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

                list.addAll(androidBean.getResults());

                myListAdapter.notifyDataSetChanged();

                listView.onRefreshComplete();

            }

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

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



//适配器

public class MyListAdapter extends BaseAdapter {
    private Context context;
    private List<AndroidBean.ResultsBean> list;

    public MyListAdapter(Context context, List<AndroidBean.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_android,null);
            ImageView imageView=convertView.findViewById(R.id.item_android_pic);
            TextView textView= convertView.findViewById(R.id.item_android_tv);
            myViewHolder=new MyViewHolder(imageView,textView);

            convertView.setTag(myViewHolder);

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

        //
        myViewHolder.getTextView().setText(list.get(position).getDesc());

        List<String> images = list.get(position).getImages();
        if (images!=null&&images.size()>0){
            String pic_url = images.get(0);
            ImageLoader.getInstance().displayImage(pic_url,myViewHolder.getImageView(), MyApp.getOptions());
        }

        return convertView;
    }
    class MyViewHolder{
        private ImageView imageView;
        private TextView textView;

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

        public ImageView getImageView() {
            return imageView;
        }

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

        public TextView getTextView() {
            return textView;
        }

        public void setTextView(TextView textView) {
            this.textView = textView;
        }
    }
}




猜你喜欢

转载自blog.csdn.net/aa15362415/article/details/80471657
今日推荐