技能2

下面的运用了PullToRefreshRecyclerView

在这里插入图片描述

代码

package com.example.mmm.Fragment;


import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;

import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.alibaba.fastjson.JSON;
import com.androidkun.PullToRefreshRecyclerView;
import com.example.mmm.DuoMyAdapter;
import com.example.mmm.R;
import com.example.mmm.bean.PinPaiBean;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;

import java.util.ArrayList;
import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 */
public class ThreeFragment extends Fragment {
    private PullToRefreshRecyclerView pull;
    private List<PinPaiBean> date;
    private DuoMyAdapter duoMyAdapter;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            if(msg.what==1){
                duoMyAdapter=new DuoMyAdapter(date, getActivity());
                LinearLayoutManager manager=new LinearLayoutManager(getActivity());
                pull.setLayoutManager(manager);
                pull.setAdapter(duoMyAdapter);
            }
        }
    };
    public ThreeFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_three, container, false);
        pull = inflate.findViewById(R.id.pull);
        new Thread(new Runnable() {
            @Override
            public void run() {
                OkGo.<String>get("http://api.yunzhancn.cn/api/app.interface.php?site" +
                        "id=78703&itemid=2&catid=&act=list&mid=13&orderby=" +
                        "desc&page=1&kw=&pagenum=10&msgtypeid=3&ordertype=addtime").execute(new StringCallback() {
                    @Override
                    public void onSuccess(Response<String> response) {
                        String body = response.body();
                        List<PinPaiBean> pinPaiBeans = JSON.parseArray(body, PinPaiBean.class);
                        date=new ArrayList<>();
                        date.addAll(pinPaiBeans);
                        handler.sendEmptyMessage(1);
                    }
                });
            }
        }).start();
        return inflate;
    }

}

适配器

package com.example.mmm;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.example.mmm.bean.PinPaiBean;

import java.util.List;

public class DuoMyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
    List<PinPaiBean> list;
    Context context;

    public DuoMyAdapter(List<PinPaiBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public int getItemViewType(int position) {
        if(position%2==0){
            return 0;
        }else{
            return 1;
        }
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        if(viewType==0){
            return new MyViewHolder1(LayoutInflater.from(parent.getContext()).inflate(R.layout.duo1,parent,false));
        }else{
            return new MyViewHolder2(LayoutInflater.from(parent.getContext()).inflate(R.layout.duo2,parent,false));
        }
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        if(getItemViewType(position)==0){
            MyViewHolder1 holder1= (MyViewHolder1) holder;
            holder1.text1.setText(list.get(position).getTitle());
            holder1.text2.setText(list.get(position).getAddress());
            Glide.with(context).load(list.get(position).getThumb()).into(holder1.image1);
        }else{
            MyViewHolder2 holder2= (MyViewHolder2) holder;
            holder2.text3.setText(list.get(position).getTitle());
            holder2.text4.setText(list.get(position).getAddress());
            Glide.with(context).load(list.get(position).getThumb()).into(holder2.image2);
        }
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    class MyViewHolder1 extends RecyclerView.ViewHolder{
        private ImageView image1;
        private TextView text1;
        private TextView text2;
        public MyViewHolder1(@NonNull View itemView) {
            super(itemView);
            image1 = itemView.findViewById(R.id.image1);
            text1 = itemView.findViewById(R.id.text1);
            text2 = itemView.findViewById(R.id.text2);
        }
    }
    class MyViewHolder2 extends RecyclerView.ViewHolder{
        private ImageView image2;
        private TextView text3;
        private TextView text4;
        public MyViewHolder2(@NonNull View itemView) {
            super(itemView);
            image2 = itemView.findViewById(R.id.image2);
            text3 = itemView.findViewById(R.id.text3);
            text4 = itemView.findViewById(R.id.text4);
        }
    }
}

在这里插入图片描述

这个效果具体看手机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值