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