package com.example.week03.tab;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.example.week03.NetWorkUtils;
import com.example.week03.R;
import com.example.week03.bean.JsonBean;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import java.util.ArrayList;
import java.util.List;
public class TabOne extends Fragment {
public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private PullToRefreshListView plv;
private MyAdapter myAdapter;
private List<JsonBean.DataBean> list = new ArrayList<>();
int page = 0;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tabone, container, false);
//找控件
plv = view.findViewById(R.id.plv);
plv.setMode(PullToRefreshBase.Mode.BOTH);
//调用适配器
myAdapter = new MyAdapter();
plv.setAdapter(myAdapter);
//请求网络
initData(page);
plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
list.clear();
page = 0;
initData(page);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page++;
initData(page);
}
});
return view;
}
private void initData(int page) {
String url = urlString + page;
new MAsync().execute(url);
}
private class MyAdapter extends BaseAdapter {
private ImageLoader instance;
@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) {
ViewHolder holder = new ViewHolder();
if(convertView == null){
convertView = View.inflate(getActivity(),R.layout.item01,null);
holder.mTv1 = convertView.findViewById(R.id.mTv1);
holder.mTv2 = convertView.findViewById(R.id.mTv2);
holder.mTv3 = convertView.findViewById(R.id.mTv3);
holder.image = convertView.findViewById(R.id.image);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.mTv1.setText(list.get(position).getNews_id());
holder.mTv2.setText(list.get(position).getNews_summary());
holder.mTv3.setText(list.get(position).getNews_title());
instance = ImageLoader.getInstance();
DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
.displayer(new RoundedBitmapDisplayer(360))
.build();
instance.displayImage(list.get(position).getPic_url(),holder.image,displayImageOptions);
return convertView;
}
class ViewHolder{
TextView mTv1,mTv2,mTv3;
ImageView image;
}
}
private class MAsync extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... strings) {
return NetWorkUtils.getNetJson(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
List<JsonBean.DataBean> data = jsonBean.getData();
list.addAll(data);
//刷新适配器
myAdapter.notifyDataSetChanged();
plv.onRefreshComplete();
}
}
}
在TabLayout里面写pulltorefresh
猜你喜欢
转载自blog.csdn.net/qq_42634876/article/details/86162952
今日推荐
周排行