文章标题
2017-12-10 19:18
127 查看
MainActivity
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Ipersenter ipersenter=new Ipersenter(this); ipersenter.Shadad(); init(); } private void init() { rec = (RecyclerView) findViewById(R.id.rec); GridLayoutManager gridLayoutManager=new GridLayoutManager(this,2); rec.setLayoutManager(gridLayoutManager); } @Override public void success(Bea bea) { Myadapter myadapter=new Myadapter(bea.getGoods_list(),MainActivity.this); rec.setAdapter(myadapter); myadapter.setmOnItemClickListener(new Myadapter.OnItemClickListener() { @Override public void onItemClick(View view, int position) { Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } }); } @Override public void success1(Beantwo beantwo) { }
IView
void success(Bea bea); void success1(Beantwo beantwo);
IHmodel
void Shaddata(HomeBake bake); interface HomeBake{ void Success(Bea bea); } void Shaddata1(HomeBack bake1); interface HomeBack{ void Success1(Beantwo beantwo); }
Imodel
@Override public void Shaddata(final HomeBake bake) { Retrofit retrofit=new Retrofit.Builder() .baseUrl(URL.BASE_HOST_URL) .addConverterFactory(GsonConverterFactory.create()) .build(); API serviceAPI = retrofit.create(API.class); final Call<Bea> bean = serviceAPI.bean(); bean.enqueue(new Callback<Bea>() { @Override public void onResponse(Call<Bea> call, Response<Bea> response) { 4000 Bea bea=response.body(); bake.Success(bea); } @Override public void onFailure(Call<Bea> call, Throwable t) { } }); } @Override public void Shaddata1(final HomeBack bake1) { Retrofit retrofit=new Retrofit.Builder() .baseUrl(URL.BASE_HOST_URL1) .addConverterFactory(GsonConverterFactory.create()) .build(); API serviceAPI = retrofit.create(API.class); final Call<Beantwo> bean = serviceAPI.beann(); bean.enqueue(new Callback<Beantwo>() { @Override public void onResponse(Call<Beantwo> call, Response<Beantwo> response) { Beantwo beantwo=response.body(); bake1.Success1(beantwo); } @Override public void onFailure(Call<Beantwo> call, Throwable t) { } }); }
Ipersenter
private Imodel imodel; private IView iView; public Ipersenter(IView iView) { this.iView = iView; imodel =new Imodel(); } public void Shadad(){ imodel.Shaddata(new IHmodel.HomeBake() { @Override public void Success(Bea bea) { iView.success(bea); } }); } public void Shadadd1(){ imodel.Shaddata1(new IHmodel.HomeBack() { @Override public void Success1(Beantwo beantwo) { iView.success1(beantwo); } }); } }
Myadapter
public class Myadapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>implements View.OnClickListener{ private List<Bea.GoodsListBean> listBeen=new ArrayList<>(); private OnItemClickListener mOnItemClickListener = null; private Context context; public Myadapter(List<Bea.GoodsListBean> listBeen, Context context) { this.listBeen = listBeen; this.context = context; } /** * Called when a view has been clicked. * * @param v The view that was clicked. */ @Override public void onClick(View v) { if (mOnItemClickListener != null) { //注意这里使用getTag方法获取position mOnItemClickListener.onItemClick(v, (int) v.getTag()); } } public void setmOnItemClickListener(OnItemClickListener mOnItemClickListener) { this.mOnItemClickListener = mOnItemClickListener; } public static interface OnItemClickListener { void onItemClick(View view, int position); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View inflat= LayoutInflater.from(context).inflate(R.layout.item,parent,false); inflat.setOnClickListener(this); return new sViewHole(inflat); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { sViewHole sViewHole= (Myadapter.sViewHole) holder; sViewHole.img.setImageURI(listBeen.get(position).getThumb_url()); sViewHole.tv1.setText(listBeen.get(position).getShort_name()); holder.itemView.setTag(position); } @Override public int getItemCount() { return listBeen.size(); } private class sViewHole extends RecyclerView.ViewHolder{ private SimpleDraweeView img; private TextView tv1; private TextView tv2; public sViewHole(View itemView) { super(itemView); img=itemView.findViewById(R.id.img); tv1=itemView.findViewById(R.id.tv1); tv2=itemView.findViewById(R.id.tv2); } } }