先写一个数据库的Bean
添加注解@Entity @id
添加自己需要的数据
生成三个类
判断网络的类
Work
//判断网络
public static boolean newwork(Context context)
{
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
return activeNetworkInfo!=null && activeNetworkInfo.isAvailable();
}
Presenter
public class Presenter {
private final OkHttps okHttps;
MainActivity mainActivity;
public void setData(MainActivity mainActivity) {
this.mainActivity=mainActivity;
}
public Presenter() {
okHttps = new OkHttps();
}
public void getData(){
okHttps.getRequest("http://172.17.8.100/small/commodity/v1/commodityList", Beans.class, new OkHttps.OkCallBack() {
@Override
public void onSuccess(Object o) {
mainActivity.onSuccess(o);
}
@Override
public void failed(Exception e) {
}
});
}
public void getBannerData(){
okHttps.getRequest("http://172.17.8.100/small/commodity/v1/bannerShow", BannerBeans.class, new OkHttps.OkCallBack() {
@Override
public void onSuccess(Object o) {
mainActivity.onBannerSuccess(o);
}
@Override
public void failed(Exception e) {
}
});
}
}
MainActivity
public class MainActivity extends AppCompatActivity implements IMainView {
private Presenter presenter;
private Beans.ResultBean result;
private RecyclerView recy_view;
private MyAdapter myAdapter;
private Banner banner;
private DaoMaster.DevOpenHelper helper;
private SQLiteDatabase database;
private DaoMaster master;
private DaoSession session;
private UserDao user;
private User user1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化bean类
user1 = new User();
init();
creataDataBase();
initData();
EventBus.getDefault().register(this);
}
private void init() {
recy_view = findViewById(R.id.recy_view);
banner = findViewById(R.id.banner);
}
//创建数据库
private void creataDataBase() {
//创建表
helper = new DaoMaster.DevOpenHelper(this, "sport-db", null);
//写入数据
database = helper.getWritableDatabase();
master = new DaoMaster(database);
session = master.newSession();
user = session.getUserDao();
}
private void initData() {
recy_view.setLayoutManager(new LinearLayoutManager(this));
presenter = new Presenter();
myAdapter = new MyAdapter(this);
recy_view.setAdapter(myAdapter);
//判断网络 成功 显示
boolean b = Work.newwork(this);
if (b) {
presenter.setData(this);
presenter.getData();
presenter.getBannerData();
} else {//失败显示数据库中的数据
//创建集合
ArrayList<Beans.ResultBean.MlssBean.CommodityListBeanXX> list = new ArrayList<>();
//List<BannerBeans.ResultBean> list_banner=new ArrayList<>();
//查询数据库并放入集合
List<User> list2 = user.queryBuilder().list();
for (int i = 0; i < list2.size(); i++) {
//创建对象
Beans.ResultBean.MlssBean.CommodityListBeanXX beanXX=new Beans.ResultBean.MlssBean.CommodityListBeanXX();
BannerBeans.ResultBean resultBean = new BannerBeans.ResultBean();
//写入数据
beanXX.setCommodityName(list2.get(i).getCommodityName());
beanXX.setMasterPic(list2.get(i).getMasterPic());
beanXX.setPrice(list2.get(i).getPrice());
//id替换pid 重要的
beanXX.setCommodityId((int) list2.get(i).getId());
/* resultBean.setTitle(list2.get(i).getTitle());
resultBean.setImageUrl(list2.get(i).getImageUrl());*/
list.add(beanXX);
//list_banner.add(resultBean);
}
myAdapter.setData(list);
// addBanner();
}
}
@Override
public void onSuccess(Object o) {
Beans beans = (Beans) o;
Beans.ResultBean.MlssBean mlss = beans.getResult().getMlss();
List<Beans.ResultBean.MlssBean.CommodityListBeanXX> list = mlss.getCommodityList();
for (int i = 0; i < list.size(); i++) {
Log.i("dddd", "onSuccess: "+list.get(i).getCommodityName());
user1.setCommodityName(list.get(i).getCommodityName());
user1.setMasterPic(list.get(i).getMasterPic());
user1.setPrice(list.get(i).getPrice());
user1.setId(list.get(i).getCommodityId());
// 添加或者替换
user.insertOrReplace(user1);
}
myAdapter.setData(list);
}
@Override
public void onBannerSuccess(Object o) {
BannerBeans bannerBeans = (BannerBeans) o;
List<BannerBeans.ResultBean> result = bannerBeans.getResult();
Log.i("ssss", "onSuccess2: " + result.get(0).getImageUrl());
//添加数据库
for (int i = 0; i < result.size(); i++) {
//添加或者替换
/* user1.setImageUrl(result.get(i).getImageUrl());
user1.setTitle(result.get(i).getTitle());
user.insertOrReplace(user1);*/
}
addBanner(result);
}
private void addBanner(List<BannerBeans.ResultBean> result) {
List<String> list = new ArrayList<>();
List<String> list2 = new ArrayList<>();
//设置图片网址或地址的集合
//设置轮播图的标题集合
for (int i = 0; i < result.size(); i++) {
String title = result.get(i).getTitle();
String imageUrl = result.get(i).getImageUrl();
list.add(imageUrl);
list2.add(title);
}
//设置内置样式
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
//设置图片加载器,图片加载器在下方
banner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
});
//添加图片
banner.setImages(list);
//设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验
banner.setBannerAnimation(Transformer.ScaleInOut);
//设置文字
banner.setBannerTitles(list2);
//设置轮播间隔时间
banner.setDelayTime(3000);
//设置是否为自动轮播,默认是“是”。
//banner.isAutoPlay(true);
//设置指示器的位置,小点点,左中右。
banner.start();
}
@Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
public void getMessage(String msg){
Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
}
Adapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
MainActivity mainActivity;
public MyAdapter(MainActivity mainActivity) {
this.mainActivity=mainActivity;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View inflate = LayoutInflater.from(mainActivity).inflate(R.layout.item, null);
ViewHolder viewHolder = new ViewHolder(inflate);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder,final int i) {
viewHolder.text_view.setText(list.get(i).getCommodityName());
viewHolder.text_view2.setText("¥:"+list.get(i).getPrice());
Glide.with(mainActivity).load(list.get(i).getMasterPic()).into(viewHolder.img_view);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EventBus.getDefault().postSticky(list.get(i).getCommodityName());
}
});
}
@Override
public int getItemCount() {
return list.size();
}
List<ShopBean.ResultBean.MlssBean.CommodityListBeanXX> list=new ArrayList<>();
public void setData(List<ShopBean.ResultBean.MlssBean.CommodityListBeanXX> result) {
if (result!=null){
this.list.clear();
this.list.addAll(result);
notifyDataSetChanged();
}
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final TextView text_view;
private final TextView text_view2;
private final ImageView img_view;
public ViewHolder(@NonNull View itemView) {
super(itemView);
text_view = itemView.findViewById(R.id.text_view);
text_view2 = itemView.findViewById(R.id.text_view2);
img_view = itemView.findViewById(R.id.img_view);
}
}
}