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;
}
}
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;
}
}