OKutils
package com.example.com.myjingdong.net.myslideshow; import android.os.Environment; import android.os.Handler; import android.util.Log; import java.io.File; import java.io.IOException; import java.util.Map; import java.util.concurrent.TimeUnit; import okhttp3.Cache; import okhttp3.Call; import okhttp3.Callback; import okhttp3.FormBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by 他。 on 2018/4/20. */ public class OkhttpUtils { public OkhttpUtils(){}; static OkHttpClient client; public static OkHttpClient getinsance(){ if (client == null){ synchronized (OkhttpUtils.class){ File file = new File(Environment.getExternalStorageDirectory(),"xie3"); client = new OkHttpClient.Builder() .connectTimeout(3000, TimeUnit.SECONDS) .readTimeout(3000,TimeUnit.SECONDS) .cache(new Cache(file,10*1024)) .build(); } } return client; } public static void doget(String url, Callback callback){ OkHttpClient client = getinsance(); Request request = new Request.Builder() .url(url) .build(); client.newCall(request).enqueue(callback); } public static void dopost(String url, Map<String,String> parms,Callback callback){ OkHttpClient client = getinsance(); FormBody.Builder body = new FormBody.Builder(); for (String key:parms.keySet()){ body.add(key,parms.get(key)); } Request request = new Request.Builder() .url(url) .post(body.build()) .build(); client.newCall(request).enqueue(callback); } }
Model
public interface DataModle { void getbanner(String url, DataPresenter dataPresenter); void getclass(String url, DataPresenter dataPresenter); }
package com.example.com.myjingdong.modle; import android.util.Log; import com.example.com.myjingdong.bean.Class_bean; import com.example.com.myjingdong.bean.Home_slideshow; import com.example.com.myjingdong.net.myslideshow.OkhttpUtils; import com.example.com.myjingdong.presenter.DataPresenter; import com.google.gson.Gson; import java.io.IOException; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Response; /** * Created by 他。 on 2018/4/20. */ public class MyDataModle implements DataModle { //获取轮播图 @Override public void getbanner(String url, final DataPresenter dataPresenter) { OkhttpUtils.doget(url, new Callback() { @Override public void onFailure(Call call, IOException e) { dataPresenter.onFailed(e); } @Override public void onResponse(Call call, Response response) throws IOException { String json=response.body().string(); Home_slideshow home_slideshow=new Gson().fromJson(json,Home_slideshow.class); dataPresenter.onSuccess(home_slideshow); } }); } //首页获取分类 @Override public void getclass(String url, final DataPresenter dataPresenter) { Log.i("geturl",""+url); OkhttpUtils.doget(url, new Callback() { @Override public void onFailure(Call call, IOException e) { dataPresenter.onFailed_one(e); } @Override public void onResponse(Call call, Response response) throws IOException { String json=response.body().string(); Log.i("抵抗",""+json); Class_bean class_bean=new Gson().fromJson(json,Class_bean.class); Log.i("geturl打卡机",""+class_bean.toString()); dataPresenter.onSuccess_one(class_bean.getData()); } }); } }
Presenter
package com.example.com.myjingdong.presenter; import com.example.com.myjingdong.bean.Class_bean; import com.example.com.myjingdong.bean.Home_slideshow; import java.util.List; /** * Created by 他。 on 2018/4/20. */ public interface DataPresenter { void onSuccess(Home_slideshow result); void onFailed(Exception e); void onSuccess_one(List<Class_bean.DataBean> result); void onFailed_one(Exception e); }
package com.example.com.myjingdong.presenter; import android.util.Log; import com.example.com.myjingdong.bean.Class_bean; import com.example.com.myjingdong.bean.Home_slideshow; import com.example.com.myjingdong.modle.MyDataModle; import com.example.com.myjingdong.ui.view.DataView; import java.util.List; /** * Created by 他。 on 2018/4/20. */ public class MyDataPresenter implements DataPresenter { private MyDataModle myDataModle; DataView dataView; public MyDataPresenter(DataView dataView) { myDataModle = new MyDataModle(); this.dataView=dataView; } @Override public void onSuccess(Home_slideshow result) { Log.d("哦哦",""+result.toString()); dataView.showSlideshowData(result); } @Override public void onFailed(Exception e) { } @Override public void onSuccess_one(List<Class_bean.DataBean> result) { Log.d("挨罚哦",""+result.toString()); dataView.showClassfiy(result); } @Override public void onFailed_one(Exception e) { } public void getbanner(String url){ myDataModle.getbanner(url,this); } public void getclass(String url){ myDataModle.getclass(url,this); } }
View
package com.example.com.myjingdong.ui.view; import com.example.com.myjingdong.bean.Class_bean; import com.example.com.myjingdong.bean.Home_slideshow; import java.util.List; /** * Created by 他。 on 2018/4/20. */ public interface DataView { void showSlideshowData(Home_slideshow userBean); void showClassfiy(List<Class_bean.DataBean> class_bean); }
MainActivity
public void showSlideshowData(Home_slideshow userBean) { List<Home_slideshow.DataBean> list = userBean.getData(); List<String> imgurl=new ArrayList<>(); for(int i=0;i<list.size();i++){ imgurl.add(list.get(i).getIcon()); } Message message=Message.obtain(); message.obj=imgurl; message.what=0; handler.sendMessage(message); //秒杀 seckilling(userBean.getMiaosha().getList()); //推荐 recommend(userBean.getTuijian().getList()); }
public void showClassfiy(List<Class_bean.DataBean> class_bean) { Message message=Message.obtain(); message.what=1; message.obj=class_bean; handler.sendMessage(message); }
Hndler
private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what==0){ List<String> list = (List<String>) msg.obj; banner.setImages(list); banner.start(); }else if(msg.what==1){ List<Class_bean.DataBean> list = (List<Class_bean.DataBean>) msg.obj; //设置分类适配器 Supermaket_Adapter supermaket_adapter=new Supermaket_Adapter(getContext(),list); supermaket.setAdapter(supermaket_adapter); }else if(msg.what==2){ List<Home_slideshow.MiaoshaBean.ListBeanX> list = (List<Home_slideshow.MiaoshaBean.ListBeanX>) msg.obj; Sliklling_Adapter sliklling_adapter=new Sliklling_Adapter(getContext(),list); skillling.setAdapter(sliklling_adapter); }else if(msg.what==3){ final List<Home_slideshow.TuijianBean.ListBean> list = (List<Home_slideshow.TuijianBean.ListBean>) msg.obj; Recommend_Adapter recommend_adapter=new Recommend_Adapter(getContext(),list); recommend.setAdapter(recommend_adapter); recommend_adapter.setOnItemClickListener(new OnItreamClickListener() { @Override public void onItemClick(int position) { String url=list.get(position).getDetailUrl(); Intent intent = new Intent(getContext(), WebActivity.class); intent.putExtra("detailUrl",url); startActivity(intent); } @Override public void onLongItemClick(int position) { } }); } } };
GridLayoutManager gridLayoutManager1 = new GridLayoutManager(getContext(), 1, RecyclerView.HORIZONTAL, false); rvSecKill.setLayoutManager(gridLayoutManager1);