PullToRefreshListView 刷新与加载

116 阅读1分钟

public   class ChannelOneFragment extends Fragment {


public static final String TAG = ChannelOneFragment.class.getSimpleName();
private String channel;
private int page = 1;
private String api = "http://gank.io/api/data/all/20/";
private PullToRefreshListView pullToRefreshListView;
private List<ChannelOneBean.ResultsBean> results = new ArrayList<>();
private ChannelOneAdapter adapter;
private HttpUtils httpUtils;


public String getChannel() {
return channel;
}


public ChannelOneFragment() {
// Required empty public constructor
}




@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_channel_one, container, false);


Bundle arguments = getArguments();
// channel = arguments.getString("channel");
pullToRefreshListView = view.findViewById(R.id.channel_all_list);
return view;
}


@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);


pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
page = 1;
httpUtils.get(api + page);
}


@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
httpUtils.get(api + page);
}
});


adapter = new ChannelOneAdapter(getActivity(), results);
pullToRefreshListView.setAdapter(adapter);


loadData();
}


private void loadData() {
httpUtils = HttpUtils.getInstance();
httpUtils.setCallback(new HttpUtils.NetCallback() {
@Override
public void onSuccess(String s) {
Log.i(TAG, "result:" + s);
Gson gson = new Gson();
ChannelOneBean channelOneBean = gson.fromJson(s, ChannelOneBean.class);


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


results.addAll(channelOneBean.getResults());
adapter.notifyDataSetChanged();


pullToRefreshListView.onRefreshComplete();
}


@Override
public void onError(String errorMsg) {


}
});
httpUtils.get(api + page);
}


public static Fragment newInstance(String channel) {
ChannelOneFragment fragment = new ChannelOneFragment();
Bundle args = new Bundle();
args.putString("channel", channel);
fragment.setArguments(args);
return fragment;
}
}
---------------------
作者:币圈小韭菜
来源:CSDN
原文:blog.csdn.net/liu_qunfeng…
版权声明:本文为博主原创文章,转载请附上博文链接!