OkHttpUtil
public class OkHttpUtil {
static OkHttpUtil okHttpUtil;
private final Retrofit retrofit;
private OkHttpUtil(){
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient okHttpClient= new OkHttpClient.Builder()
.writeTimeout(50,TimeUnit.SECONDS)
.readTimeout(50,TimeUnit.SECONDS)
.connectTimeout(50,TimeUnit.SECONDS)
.addInterceptor(loggingInterceptor)
.addNetworkInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request =chain.request();
Log.e("aaa",request.toString());
Response response =chain.proceed(request);
Log.e("aaa",response.toString());
return response;
}
}).build();
retrofit = new Retrofit.Builder()
.baseUrl("http://172.17.8.100/small/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(okHttpClient)
.build();
}
public static OkHttpUtil getContencea(){
if (okHttpUtil==null){
okHttpUtil = new OkHttpUtil();
}
return okHttpUtil;
}
public <T>T RequestData(Class<T> tClass){
return retrofit.create(tClass);
}
public static boolean isNot(Context context){
if(context!=null){
ConnectivityManager manager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if(info!=null){
return info.isConnected();
}
}
return false;
}
}
MVP
***v***ConteatInterface
public interface ConteatInterface {
public interface PresenterInterface {
public void getBanners();
public void getDatas();
public void onDestory();
public void getQuanzi(String page);
}
public interface Fragment1Interface {
public void showBanner(Object o);
public void showDatas(Object o);
}
public interface Fragment2Interface {
public void showQuanzi(Object o);
}
}
***v***MyApi
public interface MyApi {
@GET
Observable toGet(@Url String url, @HeaderMap Map<String,String> hmap,@QueryMap Map<String,String> qmap);
}
M
public class MyModel {
MyCallBack myCallBack;
public void RequestGet(String url, Map<String,String> hmap, Map<String,String> qmap ,MyCallBack myCallBack){
this.myCallBack = myCallBack;
OkHttpUtil okHttpUtil = OkHttpUtil.getContencea();
MyApi myApi = okHttpUtil.RequestData(MyApi.class);
Observable ob = myApi.toGet(url, hmap, qmap);
ob.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(ResponseBody responseBody) {
try {
String str = responseBody.string();
myCallBack.susseytdf(str);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
public interface MyCallBack{
public void susseytdf(String json);
}
}
P
public class MyPresenter implements ConteatInterface.PresenterInterface{
MyModel myModel;
T tt;
public MyPresenter(T tt) {
this.tt = tt;
myModel= new MyModel();
}
@Override
public void getBanners() {
String url= "commodity/v1/bannerShow";
myModel.RequestGet(url, new HashMap<>(), new HashMap<>(), new MyModel.MyCallBack() {
@Override
public void susseytdf(String json) {
Gson gson = new Gson();
BannerBean bannerBean = gson.fromJson(json, BannerBean.class);
ConteatInterface.Fragment1Interface fragment1Interface = (ConteatInterface.Fragment1Interface) tt;
fragment1Interface.showBanner(bannerBean);
}
});
}
@Override
public void getDatas() {
String url= "commodity/v1/commodityList";
myModel.RequestGet(url, new HashMap<>(), new HashMap<>(), new MyModel.MyCallBack() {
@Override
public void susseytdf(String json) {
Gson gson = new Gson();
GoodsBean goodsBean = gson.fromJson(json, GoodsBean.class);
ConteatInterface.Fragment1Interface fragment1Interface = (ConteatInterface.Fragment1Interface) tt;
fragment1Interface.showDatas(goodsBean);
}
});
}
@Override
public void onDestory() {
if(tt!=null){
tt=null;
}
}
@Override
public void getQuanzi(String page) {
String url= "circle/v1/findCircleList";
Map<String,String> hmap = new HashMap<>();
hmap.put("userId","1697");
hmap.put("sessionId","15593559243551697");
Map<String,String> qmap= new HashMap<>();
qmap.put("page",page);
qmap.put("count","5");
myModel.RequestGet(url, hmap, qmap, new MyModel.MyCallBack() {
@Override
public void susseytdf(String json) {
Gson gson = new Gson();
QuanBean quanBean = gson.fromJson(json, QuanBean.class);
ConteatInterface.Fragment2Interface fragment2Interface = (ConteatInterface.Fragment2Interface) tt;
fragment2Interface.showQuanzi(quanBean);
}
});
}
}
TabLayout切换
public class MainActivity extends AppCompatActivity {
List list= new ArrayList<>();
@BindView(R.id.view_pager)
ViewPager viewPager;
@BindView(R.id.tab_layout)
TabLayout tabLayout;
String[] titles={“首页”,“圈子”,“购物车”,“订单”,“我的”};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
list.add(new Fragment1());
list.add(new Fragment2());
list.add(new Fragment3());
list.add(new Fragment4());
list.add(new Fragment5());
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
});
tabLayout.setupWithViewPager(viewPager);
}
}