GreenDao

在適配器中的應該寫

   rxxpViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String name = commodityList.get(i).getCommodityName();
                String pic = commodityList.get(i).getMasterPic();
                String  price = commodityList.get(i).getPrice()+"";
                EventBus.getDefault().post(new EventBean(name,pic,price));
            }
        });

App

public class App extends Application {

    private static App Instance;
    private DaoMaster.DevOpenHelper devOpenHelper;
    private SQLiteDatabase writableDatabase;
    private DaoMaster daoMaster;
    private DaoSession daoSession;

    public static App getInstance() {
        return Instance;
    }

    public SQLiteDatabase getWritableDatabase() {
        return writableDatabase;
    }

    public DaoSession getDaoSession() {
        return daoSession;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);

        //app名字
        Instance = this;

        //建表
        devOpenHelper = new DaoMaster.DevOpenHelper(this, "a.db", null);

        writableDatabase = devOpenHelper.getWritableDatabase();
        daoMaster = new DaoMaster(writableDatabase);
         daoSession = daoMaster.newSession();

        //生成get 方法

    }
}

第一個fragment

public class Shou_FragMent extends Fragment implements ShopView {

    @BindView(R.id.recyclers)
    RecyclerView mrecyclers;
    Unbinder unbinder;
    private ShopPresenterIml shopPresenterIml;
    private ShopBean shopBean;
    private ShopAdapter shopAdapter;
    private ShopBean.ResultBean result;
    private List<BaseBean> baseBeans = new ArrayList<>();
    private SqlBeanDao dao;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_shou, container, false);
        unbinder = ButterKnife.bind(this, view);
        //獲取dao層
    dao = App.getInstance().getDaoSession().getSqlBeanDao();

        //註冊eventbus
        EventBus.getDefault().register(this);

        //獲取p層
        shopPresenterIml = new ShopPresenterIml(new ShopModelIml(), this);

        //設置佈局管理器
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        mrecyclers.setLayoutManager(linearLayoutManager);

        //添加適配器
        shopAdapter = new ShopAdapter(getActivity());
        mrecyclers.setAdapter(shopAdapter);

        shopPresenterIml.doshop(0,"http://172.17.8.100/small/commodity/v1/commodityList");
        return view;
    }


    //解決內存泄漏

    @Override
    public void onDestroy() {
        super.onDestroy();

        //註銷EventBus
        EventBus.getDefault().unregister(this);
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
    }

    @Override
    public void success(String data) {
        shopBean = new Gson().fromJson(data, ShopBean.class);

        ShopBean.ResultBean.PzshBean pzsh = shopBean.getResult().getPzsh();
        ShopBean.ResultBean.RxxpBean rxxp = shopBean.getResult().getRxxp();
        ShopBean.ResultBean.MlssBean mlss = shopBean.getResult().getMlss();
        baseBeans.add(pzsh);
        baseBeans.add(rxxp);
        baseBeans.add(mlss);
        shopAdapter.setList(baseBeans);



    }

    @Override
    public void fail(String error) {

    }



    //EventBus進行傳值
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void Eve(EventBean eventBean){
        String name = eventBean.getCommodityName();
        String pic = eventBean.getMasterPic();
        String price = eventBean.getPrice();

        int i = Integer.parseInt(price);
        SqlBean sqlBean = new SqlBean(name,pic,i);
        dao.insert(sqlBean);


    }


}

public class Histroy_FragMent extends Fragment {


    Unbinder unbinder;
    private SqlBeanDao dao;
    private RecyclerView mRecycler;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_histroy, container, false);

       mRecycler= view.findViewById(R.id.recyclerViewsss);
        //獲取dao層
        dao = App.getInstance().getDaoSession().getSqlBeanDao();
        //list集合
        //查詢
        List<SqlBean> sqlBeans = dao.loadAll();

        //創建一個新的適配器
        DaoMyAdapter daoMyAdapter = new DaoMyAdapter(getActivity(),sqlBeans);
        mRecycler.setAdapter(daoMyAdapter);


        //添加布局管理
        GridLayoutManager gridLayoutManager= new GridLayoutManager(getActivity(),2);
        mRecycler.setLayoutManager(gridLayoutManager);
        unbinder = ButterKnife.bind(this, view);
        return view;
    }

    @Override
    public void onDestroy() {
        EventBus.getDefault().unregister(this);

        super.onDestroy();
    }

    @Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged(hidden);
        if (hidden) {

        } else {

            dao = App.getInstance().getDaoSession().getSqlBeanDao();
            //list集合
            //查詢
            List<SqlBean> sqlBeans = dao.loadAll();

            //創建一個新的適配器
            DaoMyAdapter daoMyAdapter = new DaoMyAdapter(getActivity(),sqlBeans);
            mRecycler.setAdapter(daoMyAdapter);

        }
    }



}

greendao的適配器

public class DaoMyAdapter extends RecyclerView.Adapter<DaoMyAdapter.MyViewHodel> {

    private Context context;
    private List<SqlBean>  list;
    private MyViewHodel myViewHodel;

    public DaoMyAdapter(Context context,  List<SqlBean> list) {
        this.context = context;
        this.list = list;
        notifyDataSetChanged();
    }

    @NonNull
    @Override
    public DaoMyAdapter.MyViewHodel onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(context, R.layout.adapter_rxxp, null);
        myViewHodel = new MyViewHodel(view);
        return myViewHodel;
    }

    @Override
    public void onBindViewHolder(@NonNull DaoMyAdapter.MyViewHodel myViewHodel, int i) {

        myViewHodel.mTitle.setText(list.get(i).getCommodityName());
        myViewHodel.mDesc.setText(list.get(i).getPrice() + "");
        //Glide.with(context).load(commodityList.get(i).getMasterPic()).into(rxxpViewHolder.mImage);
        myViewHodel.mImage.setImageURI(list.get(i).getMasterPic());
    }

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

    public class MyViewHodel extends RecyclerView.ViewHolder {

        private SimpleDraweeView mImage;
        private TextView mTitle, mDesc;
        public MyViewHodel(@NonNull View itemView) {
            super(itemView);


            mImage = (SimpleDraweeView) itemView.findViewById(R.id.image_view);
            mTitle = (TextView) itemView.findViewById(R.id.tv_title);
            mDesc = (TextView) itemView.findViewById(R.id.tv_desc);
        }
    }
}

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