package com.bwie.zjj.fragment.One_Fragment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.util.ListUpdateCallback;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.Adapter;
import android.widget.ImageView;
import android.widget.ListView;
import com.bwie.zjj.R;
import com.bwie.zjj.adapter.MyBannerAdapter;
import com.bwie.zjj.adapter.MyPListAdapter;
import com.bwie.zjj.adapter.MyViewAdapter;
import com.bwie.zjj.bean.MyBannerBean;
import com.bwie.zjj.bean.MyBean;
import com.bwie.zjj.urils.HttpUtils;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class One_OneFragment extends Fragment {
private PullToRefreshListView prf_lixtview;
private HttpUtils httpUtils =new HttpUtils();
private HttpUtils httpUtils2=new HttpUtils();
private int type=5010;
private String http="http://ttpc.dftoutiao.com/jsonpc/refresh?type=";
private String bannerurl="http://www.xieast.com/api/banner.php";
private List<MyBean.DataBean> datas=new ArrayList<>();
private MyPListAdapter myPListAdapter;
private List<ImageView> imglist;
private View bannerview;
private ViewPager view_pager;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==0){
int currentItem = view_pager.getCurrentItem();
view_pager.setCurrentItem(currentItem+1);
handler.sendEmptyMessageDelayed(0,2000);
}
}
};
public One_OneFragment() {
// 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_one__one, container, false);
prf_lixtview = view.findViewById(R.id.prf_lixtview);
prf_lixtview.setMode(PullToRefreshListView.Mode.BOTH);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//新建Dao
Dao dao=new Dao(getActivity());
prf_lixtview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
type=5010;
init();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
type++;
init();
}
});
myPListAdapter = new MyPListAdapter(getActivity(), datas);
prf_lixtview.setAdapter(myPListAdapter);
httpUtils = HttpUtils.getInstance();
init();
addHead();
//轮播图不会加快
handler.removeCallbacksAndMessages(null);
}
private void addHead() {
//添加头布局
ListView refreshableView = prf_lixtview.getRefreshableView();
bannerview = LayoutInflater.from(getContext()).inflate(R.layout.banner_layout, null, false);
view_pager = bannerview.findViewById(R.id.view_pager);
imglist = new ArrayList<>();
// 设置头布局的布局参数
AbsListView.LayoutParams params = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 600);
bannerview.setLayoutParams(params);
// 添加头布局
refreshableView.addHeaderView(bannerview);
// 请求轮播
httpUtils2.get(bannerurl);
httpUtils2.setCallBack(new HttpUtils.NetCallBack() {
@Override
public void onSuccess(String s) {
Gson gson = new Gson();
Log.i("aaaaaa",s);
MyBannerBean myBannerBean = gson.fromJson(s, MyBannerBean.class);
for (MyBannerBean.DataBean dataBean : myBannerBean.getData()){
ImageView imageView = new ImageView(getContext());
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
ImageLoader.getInstance().displayImage(dataBean.getImg(),imageView);
imglist.add(imageView);
}
view_pager.setAdapter(new MyBannerAdapter(getActivity(),imglist));
handler.sendEmptyMessageDelayed(0,2000);
}
@Override
public void onError(String errorMsg) {
}
});
}
private void init() {
httpUtils.get(http+type);
httpUtils.setCallBack(new HttpUtils.NetCallBack() {
@Override
public void onSuccess(String s) {
s = s.replace("null(", "").replace(")", "");
Log.i("ssssssss",s);
//数据库添加数据
dao.put(new DaoBean(http+type,s));
Gson gson = new Gson();
MyBean myBean = gson.fromJson(s, MyBean.class);
List<MyBean.DataBean> data = myBean.getData();
if (type==5010){
datas.clear();
}
datas.addAll(data);
//延时1秒刷新
prf_lixtview.postDelayed(new Runnable() {
@Override
public void run() {
prf_lixtview.onRefreshComplete();
}
}, 1000);
myPListAdapter.notifyDataSetChanged();
}
@Override
public void onError(String errorMsg) {
Log.i("ssssssssss",errorMsg);
}
});
}
}
/多条目适配器
package com.bwie.zjj.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.bwie.zjj.R;
import com.bwie.zjj.bean.MyBean;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
public class MyPListAdapter extends BaseAdapter {
private Context context;
private List<MyBean.DataBean> data;
public MyPListAdapter(Context context, List<MyBean.DataBean> data) {
this.context = context;
this.data = data;
}
@Override
public int getItemViewType(int position) {
if(data.get(0).getMiniimg02()!=null){
return 0;
}else {
return 1;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int itemViewType = getItemViewType(position);
if(itemViewType==1){
ViewHolder holder=new ViewHolder();
if(convertView==null){
holder=new ViewHolder();
convertView=View.inflate(context,R.layout.plist_layout,null);
holder.tv_brief=convertView.findViewById(R.id.tv_brief);
holder.tv_source=convertView.findViewById(R.id.tv_source);
holder.img=convertView.findViewById(R.id.img);
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.tv_brief.setText(data.get(position).getBrief());
holder.tv_source.setText(data.get(position).getSource());
ImageLoader.getInstance().displayImage(data.get(position).getMiniimg().get(0).getSrc(),holder.img);
}else if(itemViewType==0){
ViewHolder2 holder=new ViewHolder2();
if(convertView==null){
holder=new ViewHolder2();
convertView=View.inflate(context,R.layout.plist_layout2,null);
holder.tv_brief=convertView.findViewById(R.id.tv_brief);
holder.tv_source=convertView.findViewById(R.id.tv_source);
holder.img=convertView.findViewById(R.id.img);
holder.img2=convertView.findViewById(R.id.img2);
holder.img3=convertView.findViewById(R.id.img3);
convertView.setTag(holder);
}else {
holder= (ViewHolder2) convertView.getTag();
}
holder.tv_brief.setText(data.get(position).getBrief());
holder.tv_source.setText(data.get(position).getSource());
ImageLoader.getInstance().displayImage(data.get(position).getMiniimg().get(0).getSrc(),holder.img);
ImageLoader.getInstance().displayImage(data.get(position).getMiniimg02().get(0).getSrc(),holder.img2);
ImageLoader.getInstance().displayImage(data.get(position).getLbimg().get(0).getSrc(),holder.img3);
}
return convertView;
}
class ViewHolder{
TextView tv_brief;
TextView tv_source;
ImageView img;
}
class ViewHolder2{
TextView tv_brief;
TextView tv_source;
ImageView img;
ImageView img2;
ImageView img3;
}
}
//轮播适配器
package com.bwie.zjj.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
public class MyBannerAdapter extends PagerAdapter {
private Context context;
private List<ImageView> imglist;
public MyBannerAdapter(Context context, List<ImageView> imglist) {
this.context = context;
this.imglist = imglist;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view==object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView imageView = imglist.get(position % imglist.size());
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
}