主页面
package com.example.week03.frag;
import android.os.AsyncTask;
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 Frag02 extends BaseFragment {
public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private PullToRefreshListView mPlv1;
private MyAdapter myAdapter;
private List<JsonBean.DataBean> list = new ArrayList<>();
int page;
//布局
@Override
public int layoutBu() {
return R.layout.frag02;
}
//数据
@Override
public void initData(View view) {
//找控件
mPlv1 = view.findViewById(R.id.mPlv1);
mPlv1.setMode(PullToRefreshBase.Mode.BOTH);
//请求网络
getData(page);
//调用适配器
myAdapter = new MyAdapter();
mPlv1.setAdapter(myAdapter);
}
//监听时间
@Override
public void setListener() {
mPlv1.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
list.clear();
page = 0;
getData(page);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page++;
getData(page);
}
});
}
//请求数据
private void getData(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;
}
}
//AsyncTask方法
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();
mPlv1.onRefreshComplete();
}
}
}
需要被继承的类
package com.example.week03.frag;
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;
public abstract class BaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(layoutBu(),container,false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initData(view);
setListener();
}
//布局
public abstract int layoutBu();
//数据
public abstract void initData(View view);
//监听
public abstract void setListener();
}