MVP

V層:IV

public interface IV {
    void  vdata(List<User.DataBean> list);
}

P層:IP和P

public interface IP {
    void ptada();

    void getdata(List<User.DataBean> list);
}
public class P implements IP{

    private IModel iModel;
    private IV iv;

    public P( IV iv) {
        iModel = new Model();
        this.iv = iv;
    }

    @Override
    public void ptada() {
        iModel.data(this);
    }

    @Override
    public void getdata(List<User.DataBean> list) {
          iv.vdata(list);
    }
}

M層:IModel和Model解析

public interface IModel {
    void data(IP ip);
}

public class Model implements IModel{

    private Handler handler=new Handler();

    @Override
    public void data(final IP ip) {
        OkHttp3Utils.doGet("http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page=1", new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, final Response response) throws IOException {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            String string = response.body().string();
                            Gson gson = new Gson();
                            User user = gson.fromJson(string, User.class);
                            List<User.DataBean> data = user.getData();
                            ip.getdata(data);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                });
            }
        });
    }
}

Activity類

public class MainActivity extends AppCompatActivity implements IV{

    private RecyclerView mRv;
    private IP ip;
    private List<User.DataBean> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        ip=new P(this);
        ip.ptada();
    }

    private void initView() {
        mRv = (RecyclerView) findViewById(R.id.rv);
        mRv.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
    }

    @Override
    public void vdata(List<User.DataBean> list) {
        this.list=list;
        mRv.setAdapter(new MyAdapter(list,this));
    }
}

適配器

public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
    private List<User.DataBean> list;
    private Context context;

    public MyAdapter(List<User.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
        Type1Viewholder type1Viewholder = new Type1Viewholder(view);
        return type1Viewholder;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        User.DataBean dataBean = list.get(position);
        Type1Viewholder holder1 = (Type1Viewholder) holder;
        holder1.textView.setText(dataBean.getTitle());
        Picasso.with(context).load(dataBean.getImg()).into(holder1.imageView);
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    private class Type1Viewholder extends RecyclerView.ViewHolder{

        private TextView textView;
        private ImageView imageView;
        public Type1Viewholder(View itemView) {
            super(itemView);
            imageView=itemView.findViewById(R.id.image);
            textView=itemView.findViewById(R.id.text);
        }
    }
}


發佈了36 篇原創文章 · 獲贊 3 · 訪問量 6256
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章