greendao eventbus Retrofit lhh

##RetrofitUtil

public class RetrofitUtil {
    private static RetrofitUtil instance;
    private final Retrofit retrofit;

    private RetrofitUtil() {
        HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
        httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .addInterceptor(httpLoggingInterceptor)
                .build();
        //gson解析器创建
        retrofit = new Retrofit.Builder()
                .baseUrl(Api.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())//gson解析器创建
                .client(okHttpClient)
                .build();
    }
    public UserApiService setRetrofit(){
        return retrofit.create(UserApiService.class);
    }

    public static RetrofitUtil getInstance(){
        if (instance==null){
            synchronized (RetrofitUtil.class){
                instance = new RetrofitUtil();
            }
        }
        return instance;
    }

##ListModel列表model

public class ListModel implements Contract.IModel {
    @Override
    public void getList(final HashMap<String, String> map, final RequestCallback requestCallback) {
        UserApiService userApiService = RetrofitUtil.getInstance().setRetrofit();
        Call<ListBean> list2 = userApiService.Get(Api.LIST_URL, map);
        list2.enqueue(new Callback<ListBean>() {
            @Override
            public void onResponse(Call<ListBean> call, Response<ListBean> response) {
                ListBean body = response.body();
                requestCallback.Successreq(body);
            }

            @Override
            public void onFailure(Call<ListBean> call, Throwable t) {
                requestCallback.Failreq("请求失败");
            }
        });

    }

    @Override
    public void getXq(HashMap<String, String> map, final RequestCallback requestCallback) {
        UserApiService userApiService = RetrofitUtil.getInstance().setRetrofit();
        Call<XqBean> get = userApiService.Get1(Api.XQ_URL, map);
       get.enqueue(new Callback<XqBean>() {
           @Override
           public void onResponse(Call<XqBean> call, Response<XqBean> response) {
               XqBean body = response.body();
               requestCallback.Successxq(body);
           }

           @Override
           public void onFailure(Call<XqBean> call, Throwable t) {
                requestCallback.Failxq("详情请求失败");
           }
       });

    }
}

##ListPersenter

public class ListPersenter extends IPersenter {
    private ListModel listModel;
    private Contract.IView iView;

    public ListPersenter( Contract.IView iView) {
        this.listModel = new ListModel();
        this.iView = iView;
    }

    @Override
    public void getList(HashMap<String, String> map) {
        if (listModel!=null){
            listModel.getList(map, new RequestCallback() {
                @Override
                public void Failreq(String msg) {
                    if (iView!=null){
                        iView.Fail(msg);
                    }
                }

                @Override
                public void Successreq(ListBean listBean) {
                    if (iView!=null){
                        iView.Success(listBean.result);
                    }
                }

                @Override
                public void Failxq(String msg) {

                }

                @Override
                public void Successxq(XqBean xqBean) {

                }
            });
        }
    }

    @Override
    public void getXq(HashMap<String, String> map) {
        if (listModel!=null){
            listModel.getXq(map, new RequestCallback() {
                @Override
                public void Failreq(String msg) {

                }

                @Override
                public void Successreq(ListBean listBean) {

                }

                @Override
                public void Failxq(String msg) {
                    if (iView!=null){
                        iView.FailXq(msg);
                    }
                }

                @Override
                public void Successxq(XqBean xqBean) {
                    if (iView!=null){
                        iView.SuccessXq(xqBean.result);
                    }
                }


            });
        }
    }

}

##view

public class MainActivity extends AppCompatActivity implements Contract.IView {
    @BindView(R.id.xrc)
    XRecyclerView xrc;
    private ListPersenter listPersenter;
    private int page=1;
    private GreenDao greenDao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        EventBus.getDefault().register(this);
        ButterKnife.bind(this);
        listPersenter = new ListPersenter(this);
        HashMap<String, String> map = new HashMap<>();
        map.put("labelId","1002");
        map.put("page",page+"");
        map.put("count","5");

        listPersenter.getList(map);
        greenDao = new GreenDao(this);
    }
    @Subscribe()
    public void receive(String s){
        Toast.makeText(this,s,Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(MainActivity.this,XqActivity.class);
        intent.putExtra("s",s);
        startActivity(intent);
    }
    @Override
    public void Success(List<ListBean.ResultBean> list) {
        if (list!=null&&list.size()>0){
            ArrayList<GreenDaoBean> list1 = new ArrayList<>();

            for (ListBean.ResultBean resultBean : list) {
                GreenDaoBean greenDaoBean = new GreenDaoBean();
                greenDaoBean.commodityId=resultBean.commodityId;
                greenDaoBean.commodityName=resultBean.commodityName;
                greenDaoBean.masterPic=resultBean.masterPic;
                greenDaoBean.price=resultBean.price;
                greenDaoBean.saleNum=resultBean.saleNum;
                list1.add(greenDaoBean);

            }
            greenDao.add(list1);
            Toast.makeText(MainActivity.this,"list请求成功",Toast.LENGTH_SHORT).show();
            xrc.setLayoutManager(new GridLayoutManager(this,2));
            ListAdapter listAdapter = new ListAdapter(this, list);
            xrc.setAdapter(listAdapter);
        }

    }

    @Override
    public void Fail(String msg) {
        Toast.makeText(MainActivity.this,"list请求失败",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void SuccessXq(XqBean.ResultBean xqBean) {

    }

    @Override
    public void FailXq(String msg) {

    }
    }

##adapter

public class ListAdapter extends XRecyclerView.Adapter<ListAdapter.ViewHolder> {
    private Context context;
    private List<ListBean.ResultBean> list;

    public ListAdapter(Context context, List<ListBean.ResultBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View inflate = LayoutInflater.from(context).inflate(R.layout.list_layout, viewGroup, false);
        ViewHolder viewHolder = new ViewHolder(inflate);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
        final ListBean.ResultBean resultBean = list.get(i);
        viewHolder.name.setText(resultBean.commodityName);
        viewHolder.price.setText(resultBean.price);
        viewHolder.fresro.setImageURI(resultBean.masterPic);
        viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EventBus.getDefault().post(resultBean.commodityId);


            }
        });
    }

    @Override
    public int getItemCount() {
        return list==null?0:list.size();
    }

    class ViewHolder extends RecyclerView.ViewHolder{
SimpleDraweeView fresro;
TextView name,price;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            fresro = itemView.findViewById(R.id.fresro);
            name = itemView.findViewById(R.id.name);
            price = itemView.findViewById(R.id.price);
        }
    }
}


##contract

public interface Contract {
    public abstract class IPersenter{
        public abstract void getList(HashMap<String,String> map);
        public abstract void getXq(HashMap<String,String> map);
    }
    interface IModel{
        void getList(HashMap<String,String> map, RequestCallback requestCallback);
        void getXq(HashMap<String,String> map, RequestCallback requestCallback);
    }
    interface IView{
        void Success(List<ListBean.ResultBean> list);
        void Fail(String msg);
        void SuccessXq(XqBean.ResultBean xqBean);
        void FailXq(String msg);
    }
}

##UserApiService

public interface UserApiService {
    @POST
    @FormUrlEncoded
    Call<ListBean> Post(@Url String url, @FieldMap HashMap<String,String> map);

    @GET
    Call<ListBean> Get(@Url String url, @QueryMap HashMap<String,String> map);

    @GET
    Call<XqBean> Get1(@Url String url, @QueryMap HashMap<String,String> map);

    @PUT
    @Headers({"Content-Type: application/json","Accept: application/json"})
    Call<ListBean> updateNickname(@Header("userId") String id, @Header("sessionId") String sid, @Field("nickName") String name);

    @GET
    Call<ListBean> getData(@Url String url, @Path("user") String user);
}

##greendaoutil

public class GreenDaoUtil {

    public DaoSession initGreenDao(Context context){
        DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(context, "greendao.db");
        SQLiteDatabase db = devOpenHelper.getWritableDatabase();
        DaoMaster daoMaster = new DaoMaster(db);
        DaoSession daoSession = daoMaster.newSession();
        return daoSession;
    }
}

##app

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //设置磁盘缓存
        DiskCacheConfig builder = DiskCacheConfig.newBuilder(this)
                .setBaseDirectoryName("images")
                .setBaseDirectoryPath(Environment.getExternalStorageDirectory())
                .build();
        //设置磁盘缓存的配置,生成配置文件
        ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
                .setMainDiskCacheConfig(builder)
                .build();
        Fresco.initialize(this,config);
    }

##SqliteHelp

public class SqliteHelp extends SQLiteOpenHelper {


    public SqliteHelp( Context context,  String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }



    @Override
    public void onCreate(SQLiteDatabase db) {

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

##GreenDao方法

public class GreenDao {
    private Context context;
    private final GreenDaoUtil greenDaoUtil;

    public GreenDao(Context context) {
        this.context = context;
        greenDaoUtil = new GreenDaoUtil();
    }

    public void add(List<GreenDaoBean> list){
        DaoSession daoSession = greenDaoUtil.initGreenDao(context);
        for (GreenDaoBean greenDaoBean : list) {
            daoSession.insertOrReplace(greenDaoBean);
         // daoSession.insertOrReplace(greenDaoBean);
        }
    }

}

##xq页面

public class XqActivity extends AppCompatActivity implements Contract.IView {

    private XBanner xbanner;
    private TextView name,price;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_xq);
        initView();
        ListPersenter listPersenter = new ListPersenter(this);
        Intent intent = getIntent();
        String s = intent.getStringExtra("s");
   
        HashMap<String, String> map = new HashMap<>();
        map.put("commodityId",s);
        listPersenter.getXq(map);

    }

    private void initView() {
        xbanner = findViewById(R.id.xbanner);
        name = findViewById(R.id.name);
        price = findViewById(R.id.price);
    }


    @Override
    public void Success(List<ListBean.ResultBean> list) {

    }

    @Override
    public void Fail(String msg) {

    }

    @Override
    public void SuccessXq(XqBean.ResultBean xqBean) {
    
        String[] split = xqBean.picture.split("\\,");
        final List<String> list = new ArrayList<>();
      

        for (int i=0;i<split.length;i++){

            list.add(split[split.length-i-1]);
        }
        xbanner.setData(list,null);
        xbanner.loadImage(new XBanner.XBannerAdapter() {
            @Override
            public void loadBanner(XBanner banner, Object model, View view, int position) {
                Glide.with(XqActivity.this).load(list.get(position)).into((ImageView) view);
            }
        });
        name.setText(xqBean.categoryName);
        price.setText(xqBean.price+"");
    }

    @Override
    public void FailXq(String msg) {
        Toast.makeText(XqActivity.this,"详情失败",Toast.LENGTH_SHORT).show();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值