JD

MainActivity.java
public class MainActivity extends AppCompatActivity {

    @BindView(R.id.main_pager)
    ViewPager mViewPager;

    @BindView(R.id.main_group)
    RadioGroup mRadioGroup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ButterKnife.bind(this);

        mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {

                Fragment fragment=null;

                switch (position){
                    case 0:
                        fragment = new SortFragment();
                        break;
                    case 1:
                        fragment = new ShopListShowFragment();
                        break;
                    case 2:
                        fragment = new CartFragment();
                        break;
                    case 3:
                        fragment = new OtherFragment();
                        break;
                    case 4:
                        fragment = new MyFragment();
                        break;
                }

                return fragment;
            }

            @Override
            public int getCount() {
                return 5;
            }
        });

        mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (i){

                    case R.id.r1:
                        mViewPager.setCurrentItem(0);
                        break;
                    case R.id.r2:
                        mViewPager.setCurrentItem(1);
                        break;
                    case R.id.r3:
                        mViewPager.setCurrentItem(2);
                        break;
                    case R.id.r4:
                        mViewPager.setCurrentItem(3);
                        break;
                    case R.id.r5:
                        mViewPager.setCurrentItem(4);
                        break;

                }
            }
        });
    }
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <android.support.v4.view.ViewPager
        android:id="@+id/main_pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="9"/>

    <RadioGroup
        android:id="@+id/main_group"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/r1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:text="分類"
            android:gravity="center"/>

        <RadioButton
            android:id="@+id/r2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:text="商品列表"
            android:gravity="center"/>

        <RadioButton
            android:id="@+id/r3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:text="購物車"
            android:gravity="center"/>

        <RadioButton
            android:id="@+id/r4"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:text="其他"
            android:gravity="center"/>

        <RadioButton
            android:id="@+id/r5"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:text="我的"
            android:gravity="center"/>

    </RadioGroup>

</LinearLayout>
SortFragment.java
public class SortFragment extends Fragment implements IView{

    @BindView(R.id.cart_rv)
    RecyclerView mRecyclerView;

    @BindView(R.id.cart_elv)
    ExpandableListView mExpandableListView;
    private IPrecenterImpl mIPrecenter;

    private int cid=1;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = View.inflate(getActivity(), R.layout.fragment_sort, null);

        ButterKnife.bind(this,view);

        mIPrecenter = new IPrecenterImpl(this);

        requestData();

        return view;
    }

    private void requestData() {
        mIPrecenter.requestData(Apis.URL_SORT_LEFT,null, SortLeftBean.class,0);

        Map<String, String> map = new HashMap<>();
        map.put("cid",cid+"");
        mIPrecenter.requestData(Apis.URL_SORT_RIGHT,map, SortRightBean.class,1);

    }

    @Override
    public void showData(Object data) {

        if (data instanceof SortLeftBean){

            SortLeftBean sortLeftBean = (SortLeftBean) data;
            List<SortLeftBean.DataBean> data1 = sortLeftBean.getData();
            SortLeftAdapter sortLeftAdapter = new SortLeftAdapter(getActivity(), data1);
            mRecyclerView.setAdapter(sortLeftAdapter);
            mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
            mRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));

            sortLeftAdapter.setOnItemClickListener(new SortLeftAdapter.onItemClickListener() {
                @Override
                public void onItemClick(int layoutPosition) {
                    cid=layoutPosition;
                    Map<String, String> map = new HashMap<>();
                    map.put("cid",cid+"");
                    mIPrecenter.requestData(Apis.URL_SORT_RIGHT,map, SortRightBean.class,1);

                }
            });
        }else if (data instanceof SortRightBean){

            SortRightBean sortRightBean = (SortRightBean) data;
            List<SortRightBean.DataBean> data1 = sortRightBean.getData();

            SortRightAdapter rightAdapter = new SortRightAdapter(getActivity(), data1);
            mExpandableListView.setAdapter(rightAdapter);

            for (int i=0;i<data1.size();i++){

                mExpandableListView.expandGroup(i);
            }
        }

    }
}

fragment_sort.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/cart_rv"
        android:layout_width="@dimen/dp_0"
        android:layout_height="match_parent"
        android:layout_weight="1"/>

    <TextView
        android:layout_width="@dimen/dp_1"
        android:layout_height="match_parent"
        android:background="#f00"/>

    <ExpandableListView
        android:id="@+id/cart_elv"
        android:layout_width="0dp"
        android:layout_weight="7"
        android:layout_height="match_parent"/>
</LinearLayout>
SortLeftAdapter.java
public class SortLeftAdapter extends RecyclerView.Adapter<SortLeftAdapter.ViewHolder>{

    private Context mContext;
    private List<SortLeftBean.DataBean> list;

    public SortLeftAdapter(Context context, List<SortLeftBean.DataBean> list) {
        mContext = context;
        this.list = list;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View view = View.inflate(parent.getContext(), R.layout.item_left, null);
        ViewHolder holder = new ViewHolder(view);

        return holder;
    }

    public interface onItemClickListener{
        void onItemClick(int layoutPosition);
    }

    private onItemClickListener mOnItemClickListener;

    public void setOnItemClickListener(onItemClickListener onItemClickListener){
        mOnItemClickListener=onItemClickListener;
    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {

        holder.mTextView.setText(list.get(position).getName());
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int layoutPosition = holder.getLayoutPosition();

                mOnItemClickListener.onItemClick(layoutPosition);
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        @BindView(R.id.item_left_text)
        TextView mTextView;

        public ViewHolder(View itemView) {
            super(itemView);

            ButterKnife.bind(this,itemView);
        }
    }
}
SortRightAdapter.java
public class SortRightAdapter extends BaseExpandableListAdapter{

    private Context mContext;
    private List<SortRightBean.DataBean> list;

    public SortRightAdapter(Context context, List<SortRightBean.DataBean> list) {
        mContext = context;
        this.list = list;
    }

    @Override
    public int getGroupCount() {
        return list.size();
    }

    @Override
    public int getChildrenCount(int i) {
        return list.get(i).getList().size();
    }

    @Override
    public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {

        GroupViewHolder groupViewHolder;
        if (view==null){
            groupViewHolder = new GroupViewHolder();

            view = View.inflate(viewGroup.getContext(), R.layout.item_right_group, null);
            groupViewHolder.mTextView = view.findViewById(R.id.item_right_group_text);

            view.setTag(groupViewHolder);
        }else {
            groupViewHolder = (GroupViewHolder) view.getTag();
        }

        groupViewHolder.mTextView.setText(list.get(i).getName());

        return view;
    }

    @Override
    public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
        ChildViewHolder childViewHolder;
        if (view==null){
            childViewHolder = new ChildViewHolder();

            view = View.inflate(viewGroup.getContext(), R.layout.item_right_child, null);
            childViewHolder.mImageView = view.findViewById(R.id.item_right_child_img);
            childViewHolder.mTextView = view.findViewById(R.id.item_right_child_text);

            view.setTag(childViewHolder);
        }else {
            childViewHolder = (ChildViewHolder) view.getTag();
        }

        childViewHolder.mTextView.setText(list.get(i).getList().get(i1).getName());
        Glide.with(mContext).load(list.get(i).getList().get(i1).getIcon()).into(childViewHolder.mImageView);

        return view;
    }



    class GroupViewHolder{
        TextView mTextView;
    }

    class ChildViewHolder{
        ImageView mImageView;
        TextView mTextView;
    }

    @Override
    public Object getGroup(int i) {
        return null;
    }

    @Override
    public Object getChild(int i, int i1) {
        return null;
    }

    @Override
    public long getGroupId(int i) {
        return 0;
    }

    @Override
    public long getChildId(int i, int i1) {
        return 0;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    @Override
    public boolean isChildSelectable(int i, int i1) {
        return false;
    }
}
ShopListShowFragment.java  //列表展示
public class ShopListShowFragment extends Fragment implements IView{

    @BindView(R.id.show_rv)
    RecyclerView mRecyclerView;
    private IPrecenterImpl mIPrecenter;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = View.inflate(getActivity(), R.layout.fragment_shop_list_show, null);
        ButterKnife.bind(this,view);

        mIPrecenter = new IPrecenterImpl(this);

        mIPrecenter.requestData(Apis.URL_LIST_SHOW,null, ListShowBean.class,0);
        return view;
    }

    @Override
    public void showData(Object data) {

        if (data instanceof ListShowBean){

            ListShowBean listShowBean = (ListShowBean) data;
            List<ListShowBean.DataBean> data1 = listShowBean.getData();

            ListShowAdapter showAdapter = new ListShowAdapter(getActivity(), data1);
            mRecyclerView.setAdapter(showAdapter);
            mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
            mRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));

            showAdapter.setOnItemClickListener(new ListShowAdapter.onItemClickListener() {
                @Override
                public void onItemClick(int pid) {

                    EventBus.getDefault().postSticky(pid);
                    Intent intent = new Intent(getActivity(), DetailActivity.class);

                    intent.putExtra("pid", pid);
                    startActivity(intent);
                }
            });
        }
    }
}
ListShowAdapter.java
public class ListShowAdapter extends RecyclerView.Adapter<ListShowAdapter.ViewHolder>{

    private Context mContext;
    private List<ListShowBean.DataBean> list;

    public ListShowAdapter(Context context, List<ListShowBean.DataBean> list) {
        mContext = context;
        this.list = list;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View view = View.inflate(parent.getContext(), R.layout.item_list_show, null);
        ViewHolder holder = new ViewHolder(view);

        return holder;
    }

    public interface onItemClickListener{
        void onItemClick(int layoutPosition);
    }

    private onItemClickListener mOnItemClickListener;

    public void setOnItemClickListener(onItemClickListener onItemClickListener){
        mOnItemClickListener=onItemClickListener;
    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {

        holder.mTextView_title.setText(list.get(position).getTitle());
        holder.mTextView_price.setText(list.get(position).getPrice()+"");

        String images = list.get(position).getImages();
        Pattern compile = Pattern.compile("\\|");
        String[] split = compile.split(images);

        holder.mSimpleDraweeView.setImageURI(split[0]);
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int pid = list.get(position).getPid();

                mOnItemClickListener.onItemClick(pid);
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        @BindView(R.id.item_list_show_text_title)
        TextView mTextView_title;

        @BindView(R.id.item_list_show_text_price)
        TextView mTextView_price;

        @BindView(R.id.item_list_show_img)
        SimpleDraweeView mSimpleDraweeView;

        public ViewHolder(View itemView) {
            super(itemView);

            ButterKnife.bind(this,itemView);
        }
    }
}
DetailActivity.java
public class DetailActivity extends AppCompatActivity implements IView{

    @BindView(R.id.detail_vp)
    ViewPager mViewPager;

    @BindView(R.id.detail_text_title)
    TextView mTextView_title;

    @BindView(R.id.detail_text_price)
    TextView mTextView_price;
    private IPrecenterImpl mIPrecenter;
    int mpid;
    int pid;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);

        ButterKnife.bind(this);
        EventBus.getDefault().register(this);
        mIPrecenter = new IPrecenterImpl(this);

        Intent intent = getIntent();
        pid = intent.getIntExtra("pid", 1);

        Map<String, String> map = new HashMap<>();
        map.put("pid",pid+"");
        mIPrecenter.requestData(Apis.URL_DETAIL,map, DetailBean.class,1);

    }

    @Subscribe(threadMode=ThreadMode.MAIN,sticky = true)
    public void getPid(int pid){
        mpid=pid;
    }

    @OnClick(R.id.detail_btn)
    public void onBtnClickListener(){

        Map<String, String> map = new HashMap<>();
        map.put("uid",109+"");
        map.put("pid",pid+"");

        mIPrecenter.requestData(Apis.URL_ADD_CART,map, AddCartBean.class,1);

    }

    @Override
    public void showData(Object data) {

        if (data instanceof DetailBean){
            DetailBean detailBean= (DetailBean) data;
            DetailBean.DataBean data1 = detailBean.getData();
            String images = data1.getImages();

            Pattern compile = Pattern.compile("\\|");
            String[] split = compile.split(images);

            BannerAdapter bannerAdapter = new BannerAdapter(DetailActivity.this, split);
            mViewPager.setAdapter(bannerAdapter);

            mTextView_title.setText(data1.getTitle());
            mTextView_price.setText(data1.getPrice()+"");
        }else if (data instanceof AddCartBean){

            AddCartBean addCartBean = (AddCartBean) data;
            Toast.makeText(DetailActivity.this,addCartBean.getMsg(),Toast.LENGTH_SHORT).show();
        }

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mIPrecenter.onDetach();
        EventBus.getDefault().unregister(this);
    }
}
BannerAdapter.java
public class BannerAdapter extends PagerAdapter{

    private Context mContext;
    private String[] split;

    public BannerAdapter(Context context, String[] split) {
        mContext = context;
        this.split = split;
    }

    @Override
    public int getCount() {
        return split.length;
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view==object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {

        ImageView imageView = new ImageView(container.getContext());

        imageView.setScaleType(ImageView.ScaleType.FIT_XY);

        Glide.with(mContext).load(split[position]).into(imageView);
        container.addView(imageView);
        return imageView;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((View) object);
    }
}

activity_detail.java

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v4.view.ViewPager
        android:id="@+id/detail_vp"
        android:layout_width="match_parent"
        android:layout_height="@dimen/dp_300"/>

    <TextView
        android:id="@+id/detail_text_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/dp_350"/>

    <TextView
        android:id="@+id/detail_text_price"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/dp_370"
        android:textColor="@color/colorAccent"
        />

    <Button
        android:id="@+id/detail_btn"
        android:layout_width="@dimen/dp_150"
        android:layout_height="@dimen/dp_50"
        android:background="#f00"
        android:text="立即搶購"
        android:textColor="#fff"
        android:textSize="15sp"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        />
</RelativeLayout>
OtherFragment.java
public class OtherFragment extends Fragment{
    @BindView(R.id.player_list_video)
    JCVideoPlayerStandard mJCVideoPlayerStandard;

    @BindView(R.id.other_img)
    ImageView mImageView_data;
    private String path = Environment.getExternalStorageDirectory()+"/qaz.png";

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = View.inflate(getActivity(), R.layout.fragment_other, null);

        ButterKnife.bind(this,view);

        boolean setUp = mJCVideoPlayerStandard.setUp("http://ips.ifeng.com/video19.ifeng.com/video09/2014/06/16/1989823-102-086-0009.mp4", JCVideoPlayer.SCREEN_LAYOUT_LIST, "");
        if (setUp) {
            Glide.with(getActivity()).load("http://a4.att.hudong.com/05/71/01300000057455120185716259013.jpg").into(mJCVideoPlayerStandard.thumbImageView);
        }
        return view;
    }

    @OnClick(R.id.other_click)
    public void onImgClick(){

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("圖片");
        builder.setMessage("上傳的途徑");
        builder.setCancelable(true);

        builder.setPositiveButton("相機", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path)));
                startActivityForResult(intent,1000);

            }
        });
        builder.setNegativeButton("相冊", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Intent intent=new Intent(Intent.ACTION_PICK);
                intent.setType("image/*");
                startActivityForResult(intent,2000);

            }
        });
        builder.show();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 2000 & resultCode == getActivity().RESULT_OK) {
            Uri uri = data.getData();
            Intent intent = new Intent("com.android.camera.action.CROP");
            intent.setDataAndType(uri, "image/*");
            intent.putExtra("crop", true);
            intent.putExtra("aspactX", 1);
            intent.putExtra("aspactY", 1);
            intent.putExtra("outputX", 70);
            intent.putExtra("outputY", 70);
            intent.putExtra("return-data", true);
            startActivityForResult(intent, 3000);
        } else if (requestCode == 1000 & resultCode == getActivity().RESULT_OK) {

            Intent intent = new Intent("com.android.camera.action.CROP");
            intent.setDataAndType(Uri.fromFile(new File(path)), "image/*");
            intent.putExtra("crop", true);
            intent.putExtra("aspactX", 1);
            intent.putExtra("aspactY", 1);
            intent.putExtra("outputX", 70);
            intent.putExtra("outputY", 70);
            intent.putExtra("return-data", true);
            startActivityForResult(intent, 3000);
        }

        if (requestCode == 3000 & resultCode == getActivity().RESULT_OK) {

            Bitmap bitmap = data.getParcelableExtra("data");
            mImageView_data.setImageBitmap(bitmap);

        }
    }
}

fragment_other.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard
        android:id="@+id/player_list_video"
        android:layout_width="match_parent"
        android:layout_height="220dp" />

    <ImageView
        android:id="@+id/other_click"
        android:layout_width="@dimen/dp_40"
        android:layout_height="@dimen/dp_40"
        android:src="@color/colorAccent"/>

    <ImageView
        android:id="@+id/other_img"
        android:layout_width="@dimen/dp_60"
        android:layout_height="@dimen/dp_60"
        android:layout_gravity="center_horizontal"
        android:src="@mipmap/ic_launcher"/>

</LinearLayout>

Apis.java

public class Apis {

    public static final String URL_SORT_LEFT="product/getCatagory";
    public static final String URL_SORT_RIGHT="product/getProductCatagory";
    public static final String URL_LIST_SHOW="product/getProducts?pscid=40";
    public static final String URL_DETAIL="product/getProductDetail";
    public static final String URL_ADD_CART="product/addCart";
    public static final String URL_CART_SHOW="product/getCarts?uid=109";
}
RetrofitManager.java
public class RetrofitManager {

    private static RetrofitManager mRetrofitManager;
    private static final String BASE_URL="http://www.zhaoapi.cn/";
    private final BaseApis mBaseApis;

    private RetrofitManager() {

        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .readTimeout(5000, TimeUnit.MILLISECONDS)
                .writeTimeout(5000,TimeUnit.MILLISECONDS)
                .connectTimeout(5000,TimeUnit.MILLISECONDS)
                .retryOnConnectionFailure(true)
                .build();

        Retrofit retrofit = new Retrofit.Builder()
                .client(okHttpClient)
                .baseUrl(BASE_URL)
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();

         mBaseApis = retrofit.create(BaseApis.class);
    }

    public static synchronized RetrofitManager getInstance(){

         if (mRetrofitManager==null){
             mRetrofitManager=new RetrofitManager();
         }

         return mRetrofitManager;
    }
    private Observer getObserver(final HttpListener httpListener){

        Observer mObserver=new Observer<ResponseBody>() {
            @Override
            public void onCompleted() {

            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(ResponseBody responseBody) {

                try {
                    String json = responseBody.string();

                    httpListener.onResponse(json);

                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        };
        return mObserver;
    }



    public void get(String url,HttpListener httpListener){

        mBaseApis.get(url)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(getObserver(httpListener));
    }

    public void post(String url, Map<String,String> map, HttpListener httpListener){

        if (map==null){

            map=new HashMap<>();
        }

        mBaseApis.post(url,map)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(getObserver(httpListener));
    }

    public interface HttpListener{

        void onFail();
        void onResponse(String json);

    }

    private HttpListener mHttpListener;

    public void setHttpListener(HttpListener httpListener){
        mHttpListener=httpListener;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章