展示数据 + 广告轮播 + 多条加载+适配器

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


猜你喜欢

转载自blog.csdn.net/qq_41663420/article/details/80856446
今日推荐