一
创表
package com.example.zhoukaomoni2; import android.content.Context; /** * Created by 。。。。 on 2018/11/5. */ public class DaoMessage { private static DaoMessage instance; private final DaoSession daoSession; private DaoMessage(Context context){ daoSession = DaoMaster.newDevSession(context,"goods.db"); } public static DaoMessage getInstance(Context context){ if(instance==null){ synchronized (DaoMessage.class){ if(null==instance){ instance=new DaoMessage(context); } } } return instance; } public DaoSession getDaoSession() { return daoSession; } }
二
商品
package com.example.zhoukaomoni2; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; import java.util.List; /** * Created by 。。。。 on 2018/11/5. */ public class GoodsAdapter extends RecyclerView.Adapter<GoodsAdapter.ViewHolder> { private Context context; private List<GoodsBean.DataBean> list; public GoodsAdapter(Context context, List<GoodsBean.DataBean> list) { this.context = context; this.list = list; } public interface OnGoodsClickListener{ void GoodsClickListener(View itemView,int postion); } private OnGoodsClickListener listener; public void setOnGoodsClickListener(OnGoodsClickListener listener){ this.listener=listener; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v=View.inflate(context,R.layout.item_goods,null); ViewHolder holder=new ViewHolder(v); return holder; } @Override public void onBindViewHolder(ViewHolder holder, final int position) { String images = list.get(position).getList().get(0).getImages(); String[] split = images.split("\\|"); holder.simpleDraweeView.setImageURI(split[0]); holder.txttitle.setText(list.get(position).getList().get(0).getTitle()); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(listener!=null){ listener.GoodsClickListener(v,position); } } }); } @Override public int getItemCount() { return list.size(); } class ViewHolder extends RecyclerView.ViewHolder { private SimpleDraweeView simpleDraweeView; private TextView txttitle; public ViewHolder(View itemView) { super(itemView); simpleDraweeView = itemView.findViewById(R.id.img_image); txttitle = itemView.findViewById(R.id.txt_title); } } }
三
储存的
package com.example.zhoukaomoni2; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; import java.util.List; /** * Created by 。。。。 on 2018/11/5. */ public class PersonAdapter extends RecyclerView.Adapter<PersonAdapter.ViewHolder> { private Context context; private List<Person> list; public PersonAdapter(Context context, List<Person> list) { this.context = context; this.list = list; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v=View.inflate(context,R.layout.item_person,null); ViewHolder holder=new ViewHolder(v); return holder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.simpleDraweeView.setImageURI(list.get(position).getImages()); holder.txttitle.setText(list.get(position).getTitle()); } @Override public int getItemCount() { return list.size(); } class ViewHolder extends RecyclerView.ViewHolder { private SimpleDraweeView simpleDraweeView; private TextView txttitle; public ViewHolder(View itemView) { super(itemView); simpleDraweeView = itemView.findViewById(R.id.img_image); txttitle = itemView.findViewById(R.id.txt_title); } } }
四
bean
package com.example.zhoukaomoni2; import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Id; import org.greenrobot.greendao.annotation.Generated; /** * Created by 。。。。 on 2018/11/5. */ @Entity public class Person { @Id(autoincrement = true) public Long id; public String images; public String title; @Generated(hash = 1947718044) public Person(Long id, String images, String title) { this.id = id; this.images = images; this.title = title; } @Generated(hash = 1024547259) public Person() { } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getImages() { return this.images; } public void setImages(String images) { this.images = images; } public String getTitle() { return this.title; } public void setTitle(String title) { this.title = title; } }
五
package com.example.zhoukaomoni2; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; public class FirstFragment extends Fragment { @BindView(R.id.recyclerview) RecyclerView recyclerview; Unbinder unbinder; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_first, container, false); unbinder = ButterKnife.bind(this, v); APIService apiService=HttpUtils.getinstance().create(APIService.class); Call<GoodsBean> getgoods = apiService.getgoods(); getgoods.enqueue(new Callback<GoodsBean>() { @Override public void onResponse(Call<GoodsBean> call, Response<GoodsBean> response) { GoodsBean body = response.body(); final List<GoodsBean.DataBean> data = body.getData(); GoodsAdapter adapter=new GoodsAdapter(getActivity(),data); RecyclerView.LayoutManager layoutManager=new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL); recyclerview.setLayoutManager(layoutManager); recyclerview.setAdapter(adapter); DaoSession daoSession=DaoMessage.getInstance(getContext()).getDaoSession(); final PersonDao personDao = daoSession.getPersonDao(); adapter.setOnGoodsClickListener(new GoodsAdapter.OnGoodsClickListener() { @Override public void GoodsClickListener(View itemView, int postion) { GoodsBean.DataBean dataBean = data.get(postion); String images = dataBean.getList().get(0).getImages(); String[] split = images.split("\\|"); Person person = new Person(null, split[0], dataBean.getList().get(0).getTitle()); personDao.insert(person); } }); } @Override public void onFailure(Call<GoodsBean> call, Throwable t) { } }); return v; } @Override public void onDestroyView() { super.onDestroyView(); unbinder.unbind(); } }
六
package com.example.zhoukaomoni2; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; public class TwoFragment extends Fragment { @BindView(R.id.recycyler_view) RecyclerView recycylerView; Unbinder unbinder; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_two, container, false); unbinder = ButterKnife.bind(this, v); return v; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); s(); } public void s(){ DaoSession daoSession=DaoMessage.getInstance(getContext()).getDaoSession(); final PersonDao personDao = daoSession.getPersonDao(); List<Person> list = personDao.queryBuilder().build().list(); PersonAdapter adapter=new PersonAdapter(getActivity(),list); RecyclerView.LayoutManager layoutManager=new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL); recycylerView.setLayoutManager(layoutManager); recycylerView.setAdapter(adapter); adapter.notifyDataSetChanged(); } @Override public void onDestroyView() { super.onDestroyView(); unbinder.unbind(); } }
七
package com.example.zhoukaomoni2; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; /** * Created by 。。。。 on 2018/11/5. */ public class HttpUtils { private static final String Url="http://www.zhaoapi.cn/"; private final Retrofit retrofit; private static final class httputils{ private static HttpUtils insatnce=new HttpUtils(); } public static HttpUtils getinstance(){ return httputils.insatnce; } private HttpUtils(){ retrofit = new Retrofit.Builder() .baseUrl(Url) .addConverterFactory(GsonConverterFactory.create()) .client(buileokHttpClient()) .build(); } private OkHttpClient buileokHttpClient(){ return new OkHttpClient.Builder() .readTimeout(5000, TimeUnit.MILLISECONDS) .writeTimeout(5000,TimeUnit.MILLISECONDS) .build(); } public Retrofit getretrofit(){ return retrofit; } public <T> T create(Class<T> tClass){ return retrofit.create(tClass); } }