wuxia
<com.stx.xhb.xbanner.XBanner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp" app:AutoPlayTime="3000" app:pointNormal="@drawable/whit_shape" app:pointSelect="@drawable/black_shape" app:pointsContainerBackground="#00000000" app:pointsPosition="CENTER" app:tipTextColor="#ffffff" app:tipTextSize="16sp" > </com.stx.xhb.xbanner.XBanner> <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto" android:id="@+id/aaa" android:layout_width="match_parent" android:layout_height="match_parent" ptr:ptrDrawable="@drawable/default_ptr_flip" ptr:ptrAnimationStyle="flip" ptr:ptrHeaderBackground="#383838" ptr:ptrHeaderTextColor="#FFFFFF"
></com.handmark.pulltorefresh.library.PullToRefreshListView>
public class FragmentOne_One extends Fragment { private String url = "https://www.zhaoapi.cn/ad/getAd"; private String url1="https://www.apiopen.top/satinApi?"; private int page = 1; private int type = 41; private XBanner xBanner; private List<String> listimg = new ArrayList<>(); private List<ListBeans.DataBean> list = new ArrayList<>(); private PullToRefreshListView pullToRefreshListView; private Handler handler = new Handler(); private PullAdapter pullAdapter; //单列 public static Fragment getInstance(String title){ //创建 fragment FragmentOne_One fragmentOne_one = new FragmentOne_One(); //创建Bundle Bundle bundle = new Bundle(); //添加值 bundle.putString("title", title); //把值添加到Argument fragmentOne_one.setArguments(bundle); return fragmentOne_one; } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragmentone_one,container,false); initSetView(view); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //"头条", "娱乐", "科技", "信息", "八卦", "北京", "上海", "天津","重庆", "大大燕网" Bundle arguments = getArguments(); if (arguments.get("title").equals("头条")) { //获取图片 getDataImage();
} } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); Bundle arguments = getArguments(); boolean netWoke = NetWorkUtils.getNetWoke(getActivity()); if (isVisibleToUser && arguments.get("title").equals("头条")){ //请求数据 getData(); } } private void initSetView(View view) { xBanner = view.findViewById(R.id.banner); pullToRefreshListView = view.findViewById(R.id.aaa); pullToRefreshListView.setMode(PullToRefreshListView.Mode.BOTH); ILoadingLayout start = pullToRefreshListView.getLoadingLayoutProxy(true, false); start.setPullLabel("下拉刷新"); start.setRefreshingLabel("正在刷新"); start.setReleaseLabel("放开刷新"); ILoadingLayout end = pullToRefreshListView.getLoadingLayoutProxy(false, true); end.setPullLabel("下拉加载"); end.setRefreshingLabel("正在加载"); end.setReleaseLabel("放开加载"); pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(final PullToRefreshBase<ListView> pullToRefreshBase) { page=1; type=41; getData(); handler.postDelayed(new Runnable() { @Override public void run() { pullToRefreshBase.onRefreshComplete(); } },2000); } @Override public void onPullUpToRefresh(final PullToRefreshBase<ListView> pullToRefreshBase) { page++; type++; getData(); handler.postDelayed(new Runnable() { @Override public void run() { pullToRefreshBase.onRefreshComplete(); } },2000); } }); pullAdapter = new PullAdapter(list,getActivity()); pullToRefreshListView.setAdapter(pullAdapter); } //请求数据 public void getData() { String path = url1+"type="+type+"&page="+page; HttpUtils.getdata(path, getActivity(), new JsonBack() { @Override public void getjsondata(String json) { Gson gson = new Gson(); ListBeans listBeans = gson.fromJson(json, ListBeans.class); List<ListBeans.DataBean> data = listBeans.getData(); if (page==1 && type==41){ data.clear(); } list.addAll(data); pullAdapter.notifyDataSetChanged(); } }); } //图片读取方法 public void getDataImage() { String path = url; HttpUtils.getdata(path, getActivity(), new JsonBack() { @Override public void getjsondata(String json) { Gson gson = new Gson(); Beans beans = gson.fromJson(json, Beans.class); Log.i("TAG",json+""); List<Beans.DataBean> data = beans.getData(); for (int i = 0; i <data.size() ; i++) { String image_url = data.get(i).getIcon(); Log.i("TAG",image_url+""); if (listimg.size()<=3){ listimg.add(image_url); } } if (listimg.size()<=4){ xBanner.setData(listimg,null); } Log.i("TAG",listimg.size()+""); xBanner.setmAdapter(new XBanner.XBannerAdapter() { @Override public void loadBanner(XBanner banner, View view, int position) { Glide.with(getActivity()).load(listimg.get(position)).into((ImageView) view); } }); xBanner.setPageTransformer(Transformer.Default); xBanner.setPageChangeDuration(1000); } }); } @Override public void onResume() { super.onResume(); xBanner.startAutoPlay(); } @Override public void onStop() { super.onStop(); xBanner.stopAutoPlay(); } }
多条目适配器
public class PullAdapter extends BaseAdapter { private List<ListBeans.DataBean> list; private Context context; public PullAdapter(List<ListBeans.DataBean> list, Context context) { this.list = list; this.context = context; } private final int ONE_ITEM = 0; private final int TWO_ITEM = 1; private final int THREE_ITEM = 2; @Override public int getCount() { return list.size(); } @Override public int getItemViewType(int position) { String profile_image = list.get(position).getProfile_image(); String bimageuri = list.get(position).getBimageuri(); String cdn_img = list.get(position).getCdn_img(); if (profile_image !=null && bimageuri == null && cdn_img == null){ return ONE_ITEM; }else if (profile_image !=null && bimageuri != null && cdn_img == null){ return TWO_ITEM; }else if (profile_image !=null && bimageuri != null && cdn_img != null){ return THREE_ITEM; }else { return ONE_ITEM; } } @Override public int getViewTypeCount() { return 3; } @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) { int itemViewType = getItemViewType(position); if (itemViewType==ONE_ITEM){ OneViewHolder oneViewHolder ; if (convertView == null){ oneViewHolder = new OneViewHolder(); convertView = View.inflate(context, R.layout.listview_one,null); oneViewHolder.profile_image = convertView.findViewById(R.id.profile_image); oneViewHolder.text = convertView.findViewById(R.id.text); oneViewHolder.screen_name = convertView.findViewById(R.id.screen_name); convertView.setTag(oneViewHolder); }else { oneViewHolder = (OneViewHolder) convertView.getTag(); } ImageLoader.getInstance().displayImage(list.get(position).getProfile_image(),oneViewHolder.profile_image, MyApp.getOptions()); oneViewHolder.screen_name.setText(list.get(position).getScreen_name()); oneViewHolder.text.setText(list.get(position).getText()); return convertView; }else if (itemViewType==TWO_ITEM){ TwoViewHolder twoViewHolder ; if (convertView == null){ twoViewHolder = new TwoViewHolder(); convertView = View.inflate(context, R.layout.listview_two,null); twoViewHolder.text =convertView.findViewById(R.id.text); twoViewHolder.bimageuri =convertView.findViewById(R.id.bimageuri); twoViewHolder.profile_image =convertView.findViewById(R.id.profile_image); convertView.setTag(twoViewHolder); }else { twoViewHolder = (TwoViewHolder) convertView.getTag(); } ImageLoader.getInstance().displayImage(list.get(position).getProfile_image(),twoViewHolder.profile_image, MyApp.getOptions()); ImageLoader.getInstance().displayImage(list.get(position).getBimageuri(),twoViewHolder.bimageuri, MyApp.getOptions()); twoViewHolder.text.setText(list.get(position).getText()); return convertView; }else if (itemViewType==THREE_ITEM){ ThreeViewHolder threeViewHolder ; if (convertView == null){ threeViewHolder = new ThreeViewHolder(); convertView = View.inflate(context, R.layout.listview_three,null); threeViewHolder.text = convertView.findViewById(R.id.text); threeViewHolder.bimageuri = convertView.findViewById(R.id.bimageuri); threeViewHolder.cdn_img = convertView.findViewById(R.id.cdn_img); threeViewHolder.profile_image = convertView.findViewById(R.id.profile_image); convertView.setTag(threeViewHolder); }else { threeViewHolder = (ThreeViewHolder) convertView.getTag(); } ImageLoader.getInstance().displayImage(list.get(position).getProfile_image(),threeViewHolder.profile_image, MyApp.getOptions()); ImageLoader.getInstance().displayImage(list.get(position).getBimageuri(),threeViewHolder.bimageuri, MyApp.getOptions()); ImageLoader.getInstance().displayImage(list.get(position).getCdn_img(),threeViewHolder.cdn_img, MyApp.getOptions()); threeViewHolder.text.setText(list.get(position).getText()); return convertView; } return null; } class OneViewHolder{ TextView screen_name,text; ImageView profile_image; } class TwoViewHolder{ TextView text; ImageView bimageuri,profile_image; } class ThreeViewHolder{ TextView text; ImageView cdn_img,bimageuri,profile_image; } }