weektwo002

依賴

//sql
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
//三方
   maven { url "https://jitpack.io" }


dependencies下依賴
  //butterknife
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    //okhttp/攔截器
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
    //Gson解析
    implementation 'com.google.code.gson:gson:2.8.1'
    //Glide圖片加載
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    //recyclerView
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    //MetrialDesign:Design庫
    implementation 'com.android.support:design:28.+'
    //Brvah:RecyclerView快速開發框架
    implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
    //fresco
    implementation 'com.facebook.fresco:fresco:1.13.0'
    //魅族banner
    implementation 'com.github.pinguo-zhouwei:MZBannerView:v2.0.2'
    //SmartRefreshLayout
    implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-19'
    //sql
    implementation 'org.greenrobot:greendao:3.2.2' // add library



greendao {
    schemaVersion 1 //數據庫版本號
    daoPackage 'gxq.com.rk02.greenDao.db'
// 設置DaoMaster、DaoSession、Dao 包名
    targetGenDir 'src/main/java'//設置DaoMaster、DaoSession、Dao目錄
    generateTests false //設置爲true以自動生成單元測試。
    targetGenDirTests 'src/main/java' //應存儲生成的單元測試的基本目錄。默認爲 src / androidTest / java。
}

//App


public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //設置磁盤緩存  
        DiskCacheConfig cacheConfig = DiskCacheConfig.newBuilder(this)
                .setBaseDirectoryName("fimages")
                .setBaseDirectoryPath(Environment.getExternalStorageDirectory())
                .build();
        //設置磁盤緩存的配置,生成配置文件
        ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
                .setMainDiskCacheConfig(cacheConfig)
                .build();
        //Fresco
        Fresco.initialize(this,config);
       //數據庫
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "ccc.db");
        SQLiteDatabase db = helper.getWritableDatabase();
        DaoMaster daoMaster = new DaoMaster(db);
        daoSession = daoMaster.newSession();
    }

    private static DaoSession daoSession;
    public static DaoSession getDaoSession() {
        return daoSession;
    }

}

//utils

//ok

public class OkHttpUtils<T> {

    private final OkHttpClient okHttpClient;

    //私有化
    private OkHttpUtils(){
        okHttpClient = new OkHttpClient.Builder().build();
    }

    public static OkHttpUtils getHttpUtilsInstance(){
        return HttpUtilsInstance.okHttpUtils;
    }

    private static class HttpUtilsInstance{
        public static OkHttpUtils okHttpUtils = new OkHttpUtils();
    }



    //get
    public void getData(String url, final Class<T> tClass , final CallBackData callBackData){
        this.backData = callBackData;
        final Request request = new Request.Builder().url(url).build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                callBackData.onFail(e.getMessage());
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {

                String string = response.body().string();
                Gson gson = new Gson();
                T t = gson.fromJson(string, tClass);
                callBackData.onResponse(t);

            }
        });

    }

    //post
    public void postData(String url, HashMap<String,String> hashMap, final Class<T> tClass, final CallBackData callBackData){
        this.backData = callBackData;

        FormBody.Builder builder = new FormBody.Builder();
        for (String key : hashMap.keySet()) {
            builder.add(key,hashMap.get(key));
        }
        FormBody formBody = builder.build();


        final Request request = new Request.Builder().url(url).post(formBody).build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                callBackData.onFail(e.getMessage());
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {

                String string = response.body().string();
                Gson gson = new Gson();
                T t = gson.fromJson(string, tClass);
                callBackData.onResponse(t);

            }
        });

    }

    //接口回調
    CallBackData backData;
    //接口回調
    public interface CallBackData<D>{
        void onResponse(D d);
        void onFail(String massage);
    }
}

//判斷網絡
public boolean isNetWirkConnected(Context context){
        if (context!=null){
            ConnectivityManager systemService = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetwork = systemService.getActiveNetworkInfo();
            if (activeNetwork!=null){
                return activeNetwork.isAvailable();
            }
        }
        return false;
    }

// 3d MZBanner

 // 設置數據
        banner.setPages(result, new MZHolderCreator<BannerViewHolder>() {
            @Override
            public BannerViewHolder createViewHolder() {
                return new BannerViewHolder();
            }
        });
//BannerViewHolder
public static class BannerViewHolder implements MZViewHolder<BannerBean.ResultBean> {
        private ImageView mImageView;

        @Override
        public View createView(Context context) {
            // 返回頁面佈局
            View view = LayoutInflater.from(context).inflate(R.layout.item_banner, null);
            mImageView = (ImageView) view.findViewById(R.id.banner_image);
            return view;
        }

        @Override
        public void onBind(Context context, int position, BannerBean.ResultBean data) {
            // 數據綁定
            Glide.with(context).load(data.getImageUrl()).into(mImageView);
        }
    }

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