ok的二次封装
package bwie.com.zk03_last.okhttp;
import android.text.TextUtils;
import android.util.Log;
import com.orhanobut.logger.Logger;
import java.util.concurrent.TimeUnit;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.logging.HttpLoggingInterceptor;
public class OkHttp {
private static OkHttp instance;
private static OkHttpClient okHttpClient;
//单例模式
public static OkHttp getInstance(){
if (instance!=null){
synchronized (OkHttp.class){
if (instance==null){
instance = new OkHttp();
}
}
}
return instance;
}
//网络连接
private OkHttp(){
OkHttpClient.Builder builder = new OkHttpClient().newBuilder();
builder.writeTimeout(10,TimeUnit.SECONDS);
builder.readTimeout(10,TimeUnit.SECONDS);
builder.connectTimeout(10,TimeUnit.SECONDS);
builder.addInterceptor(new HeaderInterceptor());;
builder.addInterceptor(new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
if (message.startsWith("{")||message.startsWith("[")){
Logger.json(message);
}else {
Logger.i(message);
}
}
}).setLevel(HttpLoggingInterceptor.Level.BODY));
okHttpClient = builder.build();
}
public static void doGet(String url, Callback callback){
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
okHttpClient.newCall(request).enqueue(callback);
}
public static void doPost(String url,String phone,String pwd,Callback callback){
FormBody build = new FormBody.Builder().add("phone", phone).add("pwd", pwd).build();
Request request = new Request.Builder().url(url).post(build).build();
okHttpClient.newCall(request).enqueue(callback);
}
}
mvp略过
mainactivity
package bwie.com.zk03_last;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import com.stx.xhb.xbanner.XBanner;
import java.util.ArrayList;
import java.util.List;
import bwie.com.zk03_last.adapter.GreenAdapter;
import bwie.com.zk03_last.adapter.ShowAdapter;
import bwie.com.zk03_last.bean.BannerBean;
import bwie.com.zk03_last.bean.GreenDaoBean;
import bwie.com.zk03_last.bean.ShowBean;
import bwie.com.zk03_last.greenDao.DaoSession;
import bwie.com.zk03_last.greenDao.GreenDaoBeanDao;
import bwie.com.zk03_last.mvp.presenter.Presenter;
import bwie.com.zk03_last.okhttp.Net;
public class MainActivity extends AppCompatActivity {
private XBanner xbanner;
private RecyclerView recycle;
private Presenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xbanner = findViewById(R.id.xbanner);
recycle = findViewById(R.id.recycle);
presenter = new Presenter(this);
boolean b = Net.isnetwork(this);
presenter.ShowPre();
presenter.Banner();
if (!b){
Toast.makeText(this, "没网", Toast.LENGTH_SHORT).show();
DaoSession daoSession = Fresco.daoSession;
GreenDaoBeanDao greenDaoBeanDao = daoSession.getGreenDaoBeanDao();
List<GreenDaoBean> greenDaoBeans = greenDaoBeanDao.loadAll();
if (!greenDaoBeans.isEmpty()){
GreenAdapter greenAdapter = new GreenAdapter(MainActivity.this,greenDaoBeans);
recycle.setAdapter(greenAdapter);
}
}
recycle.setLayoutManager(new GridLayoutManager(MainActivity.this, 2));
}
public void ShowView(final String data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
ShowBean showBean = gson.fromJson(data, ShowBean.class);
List<ShowBean.ResultBean> list = showBean.getResult();
DaoSession daoSession = Fresco.daoSession;
for (int i = 0; i < list.size(); i++) {
GreenDaoBean bean = new GreenDaoBean();
bean.setImage(list.get(i).getImageUrl());
bean.setName(list.get(i).getName());
daoSession.insert(bean);
}
ShowAdapter showAdapter = new ShowAdapter(MainActivity.this,list);
recycle.setAdapter(showAdapter);
}
});
}
public void BannerView(final String data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
final List<String> list = new ArrayList<>();
BannerBean bannerBean = gson.fromJson(data, BannerBean.class);
final List<BannerBean.ResultBean> result = bannerBean.getResult();
for (int i = 0; i < result.size(); i++) {
list.add(result.get(i).getImageUrl());
}
xbanner.setData(list,null);
xbanner.setPoinstPosition(XBanner.RIGHT);
xbanner.setmAdapter(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, View view, int position) {
Glide.with(MainActivity.this).load(list.get(position)).into((ImageView) view);
}
});
}
});
}
}
adapter
package bwie.com.zk03_last.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.facebook.drawee.view.SimpleDraweeView;
import java.util.List;
import bwie.com.zk03_last.MainActivity;
import bwie.com.zk03_last.R;
import bwie.com.zk03_last.bean.ShowBean;
public class ShowAdapter extends RecyclerView.Adapter<ShowAdapter.ViewHolder> {
Context context;
List<ShowBean.ResultBean>list;
public ShowAdapter(Context context, List<ShowBean.ResultBean> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(viewGroup.getContext(), R.layout.item_show, null);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
viewHolder.name.setText(list.get(i).getName());
viewHolder.price.setText(list.get(i).getId()+"");
viewHolder.img.setImageURI(list.get(i).getImageUrl());
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private SimpleDraweeView img;
private TextView name;
private TextView price;
public ViewHolder(@NonNull View itemView) {
super(itemView);
img = itemView.findViewById(R.id.img);
name = itemView.findViewById(R.id.name);
price = itemView.findViewById(R.id.price);
}
}
}
集成greendao
package bwie.com.zk03_last.bean;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Generated;
@Entity
public class GreenDaoBean {
private String name;
private String imageUrl;
private String image;
@Generated(hash = 1490715328)
public GreenDaoBean(String name, String imageUrl, String image) {
this.name = name;
this.imageUrl = imageUrl;
this.image = image;
}
@Generated(hash = 826843181)
public GreenDaoBean() {
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getImageUrl() {
return this.imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getImage() {
return this.image;
}
public void setImage(String image) {
this.image = image;
}
}
package bwie.com.zk03_last.okhttp;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
//网络封装判断有没有网
public class Net {
public static boolean isnetwork(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null) {
return true;
}
return false;
}
}
然后初始化
package bwie.com.zk03_last;
import android.app.Application;
import android.database.sqlite.SQLiteDatabase;
import bwie.com.zk03_last.greenDao.DaoMaster;
import bwie.com.zk03_last.greenDao.DaoSession;
public class Fresco extends Application {
public static DaoSession daoSession;
//fresco
@Override
public void onCreate() {
super.onCreate();
com.facebook.drawee.backends.pipeline.Fresco.initialize(this);
initGreenDao();
}
//greendao初始化
private void initGreenDao() {
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, "aaa.db");
SQLiteDatabase writableDatabase = devOpenHelper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(writableDatabase);
daoSession = daoMaster.newSession();
}
}
扫描二维码关注公众号,回复:
6128810 查看本文章