第2周考复习

package com.bw.mylibrary.presenter;

import java.lang.ref.WeakReference;

import io.reactivex.disposables.CompositeDisposable;

public class BasePresentr <V>{

    WeakReference<V>weakReference;
    protected CompositeDisposable disposable=new CompositeDisposable();

    public void Chuang(V view){
        if(weakReference==null){
            weakReference=new WeakReference<V>(view);
        }
    }

    public void Xiao(){
        if(weakReference!=null){
            weakReference.clear();
            weakReference=null;
        }

        if(disposable!=null){
            disposable.clear();
            disposable=null;
        }
    }

    public Boolean Pan(){
        return weakReference!=null&&weakReference.get()!=null;
    }

    public V getview(){
        if(weakReference!=null&&weakReference.get()!=null){
            return weakReference.get();
        }
        return null;
    }
}
package com.bw.mylibrary.view;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import com.bw.mylibrary.presenter.BasePresentr;

public abstract class BaseFragment<V,P extends BasePresentr<V>> extends Fragment {
    protected P presenter;
    protected View view;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view=inflater.inflate(bingLayou(),null);
        return view;
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        intiData();
        intiView();
        if(presenter!=null){
            presenter.Chuang((V) this);
        }
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        presenter.Xiao();
    }
    protected abstract void intiView();

    protected abstract void intiData();

    protected abstract int bingLayou();
}
package com.bw.mylibrary.view;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.bw.mylibrary.presenter.BasePresentr;

public abstract class BaseAtiviy <V,P extends BasePresentr<V>>extends AppCompatActivity {
    protected P presenter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(bingLayou());
        intiView();
        intiData();
        if(presenter!=null){
            presenter.Chuang((V) this);
        }
    }

    protected abstract void intiView();

    protected abstract void intiData();

    @Override
    protected void onDestroy() {
        super.onDestroy();
        presenter.Xiao();
    }

    protected abstract int bingLayou();
}
package com.bw.rikao_6_29.ten;

public class TenCon {
    public static final String JIZHUN="http://43.143.146.165:7777";
    public static final String SHOPIN="/video/findVideos?pageSize=30";
    public static final String SHIPINAME="/video/findVideoByName?";
}
package com.bw.rikao_6_29.ten;

import com.google.gson.Gson;

import java.util.concurrent.TimeUnit;

import io.reactivex.android.schedulers.AndroidSchedulers;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;

public class OkHttp {
    private OkHttp(){}

    private static  OkHttp okHttp=null;

    public static OkHttp getOkHttp(){
        if(okHttp==null) {
            okHttp = new OkHttp();
        }
        return okHttp;
    }

    private Retrofit retrofit;

    public Retrofit getRetrofit(){
        OkHttpClient okHttpClient=new OkHttpClient()
                .newBuilder()
                .writeTimeout(5, TimeUnit.MINUTES)
                .connectTimeout(5, TimeUnit.MINUTES)
                .readTimeout(5, TimeUnit.MINUTES)
                .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
                .build();
        retrofit=new Retrofit.Builder()
                .baseUrl(TenCon.JIZHUN)
                .client(okHttpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .build();
        return retrofit;
    }
}
package com.bw.rikao_6_29.ten;

import com.bw.rikao_6_29.entiy.ShiPinEnity;

import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;

public interface APis {
    @GET(TenCon.SHOPIN)
    Observable<ShiPinEnity>ShiPinList(@Query("currentPage")int page);
    @GET(TenCon.SHIPINAME)
    Observable<ShiPinEnity>ShiPinName(@Query("keywords")String name);
}
package com.bw.rikao_6_29.mvp.view.fg;

import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import com.bw.rikao_6_29.R;
import com.bw.rikao_6_29.mvp.view.MyView;

public class BlankFragmentB extends Fragment {
    private MyView my;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_blank_b, container, false);
        my = (MyView)inflate. findViewById(R.id.my);
        my.star(10);
        return inflate;
    }
}
package com.bw.rikao_6_29.mvp.view.fg;

import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;

import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.Toast;

import com.alibaba.android.arouter.launcher.ARouter;
import com.bw.mylibrary.view.BaseFragment;
import com.bw.rikao_6_29.R;
import com.bw.rikao_6_29.adapter.ShiPinAdapter;
import com.bw.rikao_6_29.entiy.ShiPinEnity;
import com.bw.rikao_6_29.mvp.presenter.ICon;
import com.bw.rikao_6_29.mvp.presenter.ShiPinPresenter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemClickListener;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.scwang.smart.refresh.layout.api.RefreshLayout;
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener;

import java.util.ArrayList;
import java.util.List;

public class BlankFragmentA extends BaseFragment<ICon.V, ShiPinPresenter>implements ICon.V {
    private EditText ed;
    private SmartRefreshLayout sm;
    private RecyclerView rec;
    private ShiPinAdapter shiPinAdapter;
    private List<ShiPinEnity.DataDTO>listShpin=new ArrayList<>();
    private int page=1;
    @Override
    public void getViewShiPinChang(ShiPinEnity shiPinEnity) {
        listShpin.addAll(shiPinEnity.getData());
        shiPinAdapter.notifyDataSetChanged();
    }

    @Override
    public void getViewShiPinShiBai() {
        Toast.makeText(getActivity(), "错误", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void getViewShiPinChangName(ShiPinEnity shiPinEnity) {
        listShpin.clear();
        if(shiPinEnity.getData()!=null){
            listShpin.addAll(shiPinEnity.getData());
        }
        shiPinAdapter.notifyDataSetChanged();
    }

    @Override
    public void getViewShiPinShiBaiName() {
        Toast.makeText(getActivity(), "查无此结果", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void intiView() {
        ed = (EditText)view. findViewById(R.id.ed);
        sm = (SmartRefreshLayout)view. findViewById(R.id.sm);
        rec = (RecyclerView)view. findViewById(R.id.rec);
        rec.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));
        shiPinAdapter=new ShiPinAdapter(R.layout.item,listShpin,getActivity());
        rec.setAdapter(shiPinAdapter);
        ed.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                String names = ed.getText().toString();
                presenter.getViewShiPinNmae(names);
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });
        sm.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
            @Override
            public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
                page++;
                presenter.getViewShiPin(page);
                sm.finishLoadMore();
            }

            @Override
            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
                page=1;
                listShpin.clear();
                presenter.getViewShiPin(page);
                sm.finishRefresh();
            }
        });

        shiPinAdapter.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(@NonNull BaseQuickAdapter adapter, @NonNull View view, int position) {
                ARouter.getInstance().build("/app/MainActivity3")
                        .withString("name",listShpin.get(position).getAuthname())
                        .withString("zhao",listShpin.get(position).getHeadpath())
                        .navigation();
            }
        });
    }

    @Override
    protected void intiData() {
        presenter=new ShiPinPresenter();
        presenter.getViewShiPin(page);
    }

    @Override
    protected int bingLayou() {
        return R.layout.fragment_blank_a;
    }
}
package com.bw.rikao_6_29.mvp.view;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

public class MyView extends View {
    private Paint paint;
    private int progress;
    private String timeString;

    public MyView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        intiPaint();
    }

    private void intiPaint() {
        paint=new Paint();//初始化
        paint.setColor(Color.RED);//颜色
        paint.setStrokeWidth(5);//宽度
        paint.setAntiAlias(true);//抗锯齿
        paint.setStyle(Paint.Style.STROKE);//空心
        paint.setTextSize(25);//文字大小
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        RectF rectF=new RectF(10,10,110,110);//创建圆圈的位置角度
        canvas.drawArc(rectF,270,progress,false,paint);//创建圆圈位置角度记录画笔
        canvas.drawText(timeString,50,56,paint);//字体的记录位置笔
    }

    public void star(int time){//外部接口
        ValueAnimator valueAnimator=ValueAnimator.ofInt(0,360);//圆的一圈从0到360
        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(@NonNull ValueAnimator valueAnimator) {
                progress= (int) valueAnimator.getAnimatedValue();//开始画圆
                invalidate();
            }
        });
        valueAnimator.setDuration(time*1000);//时间
        valueAnimator.start();//开始

        ValueAnimator valueAnimatorText=ValueAnimator.ofInt(time,0);
        valueAnimatorText.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(@NonNull ValueAnimator valueAnimator) {
                timeString=String.valueOf((int) valueAnimator.getAnimatedValue());
            }
        });
        valueAnimatorText.setDuration(time*1000);
        valueAnimatorText.start();
        valueAnimator.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                super.onAnimationEnd(animation);
                Log.i("aaa", "onAnimationEnd: "+"动画结束");
            }
        });
    }
}
package com.bw.rikao_6_29.mvp.view;

import androidx.appcompat.app.AppCompatActivity;

import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.view.View;
import android.view.animation.CycleInterpolator;
import android.widget.ImageView;
import android.widget.TextView;

import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.bumptech.glide.load.model.GlideUrl;
import com.bw.rikao_6_29.GongJu.GuldeUrl;
import com.bw.rikao_6_29.R;
@Route(path = "/app/MainActivity3")
public class MainActivity3 extends AppCompatActivity {
    @Autowired
    String name;
    @Autowired
    String zhao;
    private ImageView zhaoxiang;
    private TextView nameText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        zhaoxiang = (ImageView) findViewById(R.id.zhaoxiang);
        nameText = (TextView) findViewById(R.id.nameText);
        ARouter.getInstance().inject(this);
        GuldeUrl.getGuldeUrl().GlideString(zhao,this,zhaoxiang);
        nameText.setText(name);
        zhaoxiang.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ObjectAnimator alpha=ObjectAnimator.ofFloat(zhaoxiang,"alpha",1,0,1);
                ObjectAnimator scaleX=ObjectAnimator.ofFloat(zhaoxiang,"scaleX",1,2,1);
                ObjectAnimator rotation=ObjectAnimator.ofFloat(zhaoxiang,"rotation",0,360,0);
                AnimatorSet set=new AnimatorSet();
                set.play(alpha).with(scaleX).before(rotation);
                set.setDuration(1000);
                set.start();
            }
        });
    }
}
package com.bw.rikao_6_29.mvp.view;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;

import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.alibaba.android.arouter.facade.annotation.Route;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.model.GlideUrl;
import com.bw.rikao_6_29.GongJu.GongChang;
import com.bw.rikao_6_29.GongJu.GuldeUrl;
import com.bw.rikao_6_29.GongJu.TablVip;
import com.bw.rikao_6_29.R;
import com.google.android.material.navigation.NavigationView;
import com.google.android.material.tabs.TabLayout;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;

import java.util.ArrayList;
import java.util.List;

@Route(path = "/app/MainActivity2")
public class MainActivity2 extends AppCompatActivity {
    private DrawerLayout dr;
    private Button bu1;
    private Banner ban;
    private List<Integer> listban=new ArrayList<Integer>();
    private TabLayout tabl;
    private ViewPager vip;
    private NavigationView nav;
    private TablVip tablVip;
    private List<String>listtabl=new ArrayList<>();
    private List<Fragment>listvip=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        dr = (DrawerLayout) findViewById(R.id.dr);
        bu1 = (Button) findViewById(R.id.bu1);
        ban = (Banner) findViewById(R.id.ban);
        tabl = (TabLayout) findViewById(R.id.tabl);
        vip = (ViewPager) findViewById(R.id.vip);
        nav = (NavigationView) findViewById(R.id.nav);
        View headerView = nav.getHeaderView(0);
        TextView name=headerView.findViewById(R.id.textView);
        name.setText("郑昊林");
        bu1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dr.openDrawer(Gravity.LEFT);
            }
        });
        nav.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()){
                    case R.id.nu1:
                        vip.setCurrentItem(0);
                        dr.closeDrawer(Gravity.LEFT);
                        break;
                    case R.id.nu2:
                        vip.setCurrentItem(1);
                        dr.closeDrawer(Gravity.LEFT);
                        break;
                    case R.id.nu3:
                        vip.setCurrentItem(2);
                        dr.closeDrawer(Gravity.LEFT);
                        break;

                }
                return false;
            }
        });
        listtabl.add("主页");
        listtabl.add("分享");
        listtabl.add("展示");
        listvip.add(GongChang.serc(GongChang.H_A));
        listvip.add(GongChang.serc(GongChang.H_B));
        listvip.add(GongChang.serc(GongChang.H_C));
        tablVip=new TablVip(getSupportFragmentManager(),listtabl,listvip);
        vip.setAdapter(tablVip);
        tabl.setupWithViewPager(vip);
        listban.add(R.drawable.a);
        listban.add(R.drawable.b);
        listban.add(R.drawable.c);
        listban.add(R.drawable.d);
        listban.add(R.drawable.e);
        listban.add(R.drawable.f);
        listban.add(R.drawable.g);
        ban.setImages(listban);
        ban.setImageLoader(new ImageLoader() {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
                Glide.with(context).load(path).into(imageView);
            }
        });
        ban.start();
    }
}
package com.bw.rikao_6_29.mvp.view;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;

import android.content.DialogInterface;
import android.content.Intent;
import android.hardware.biometrics.BiometricPrompt;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Build;
import android.os.Bundle;
import android.os.CancellationSignal;
import android.widget.EditText;
import android.widget.Toast;

import com.alibaba.android.arouter.launcher.ARouter;
import com.bw.rikao_6_29.R;
import com.bw.rikao_6_29.mvp.presenter.ICon;

import java.util.concurrent.Executor;

public class MainActivity extends AppCompatActivity {




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        FingerprintManager fingerprintManager= (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);
        if(!fingerprintManager.isHardwareDetected()){
            Toast.makeText(this, "没有指纹设备", Toast.LENGTH_SHORT).show();

            ARouter.getInstance().build("/app/MainActivity2")
                    .navigation();
        }
        if(!fingerprintManager.hasEnrolledFingerprints()){
            Toast.makeText(this, "没有指纹", Toast.LENGTH_SHORT).show();
        }

        Executor executor= ContextCompat.getMainExecutor(this);
        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.P){
            BiometricPrompt biometricPrompt=new BiometricPrompt.Builder(this)
                    .setTitle("是否开始")
                    .setNegativeButton("取消", executor, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            Toast.makeText(MainActivity.this, "取消开始", Toast.LENGTH_SHORT).show();
                            finish();
                        }
                    })
                    .build();
            biometricPrompt.authenticate(new CancellationSignal(), executor,
                    new BiometricPrompt.AuthenticationCallback() {
                        @Override
                        public void onAuthenticationError(int errorCode, CharSequence errString) {
                            super.onAuthenticationError(errorCode, errString);
                            Toast.makeText(MainActivity.this, "开锁失败", Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
                            super.onAuthenticationSucceeded(result);
                            Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();

                            ARouter.getInstance().build("/app/MainActivity2")
                                    .navigation();
                        }
                    });
        }
    }
}
package com.bw.rikao_6_29.mvp.presenter;

import com.bw.mylibrary.presenter.BasePresentr;
import com.bw.rikao_6_29.entiy.ShiPinEnity;
import com.bw.rikao_6_29.mvp.model.ShiPinModel;

import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;

public class ShiPinPresenter extends BasePresentr<ICon.V>implements ICon.P {
    protected ShiPinModel shiPinModel=new ShiPinModel();
    @Override
    public void getViewShiPin(int page) {
        shiPinModel.ShiPingetList(page)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ShiPinEnity>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        disposable.add(d);
                    }

                    @Override
                    public void onNext(ShiPinEnity shiPinEnity) {
                        if(Pan()){
                            getview().getViewShiPinChang(shiPinEnity);
                        }
                    }

                    @Override
                    public void onError(Throwable e) {
                        getview().getViewShiPinShiBai();
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

    @Override
    public void getViewShiPinNmae(String name) {
        shiPinModel.ShiPingetName(name)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ShiPinEnity>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        disposable.add(d);
                    }

                    @Override
                    public void onNext(ShiPinEnity shiPinEnity) {
                        if(Pan()){
                            getview().getViewShiPinChangName(shiPinEnity);
                        }
                    }

                    @Override
                    public void onError(Throwable e) {
                        getview().getViewShiPinShiBaiName();
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}
package com.bw.rikao_6_29.mvp.presenter;

import com.bw.rikao_6_29.entiy.ShiPinEnity;

import io.reactivex.Observable;

public interface ICon {
    interface M{
        Observable<ShiPinEnity>ShiPingetList(int page);
        Observable<ShiPinEnity>ShiPingetName(String name);
    }
    interface P{
        void getViewShiPin(int page);
        void getViewShiPinNmae(String name);
    }

    interface V{
        void getViewShiPinChang(ShiPinEnity shiPinEnity);
        void getViewShiPinShiBai();
        void getViewShiPinChangName(ShiPinEnity shiPinEnity);
        void getViewShiPinShiBaiName();
    }
}
package com.bw.rikao_6_29.mvp.model;

import com.bw.rikao_6_29.entiy.ShiPinEnity;
import com.bw.rikao_6_29.mvp.presenter.ICon;

import io.reactivex.Observable;

public class ShiPinModel extends BaseModel implements ICon.M {
    @Override
    public Observable<ShiPinEnity> ShiPingetList(int page) {
        return pis.ShiPinList(page);
    }

    @Override
    public Observable<ShiPinEnity> ShiPingetName(String name) {
        return pis.ShiPinName(name);
    }
}
package com.bw.rikao_6_29.mvp.model;

import com.bw.rikao_6_29.ten.APis;
import com.bw.rikao_6_29.ten.OkHttp;

public class BaseModel {
    protected APis pis;
    public BaseModel(){
        pis= OkHttp.getOkHttp()
                .getRetrofit()
                .create(APis.class);
    }
}
package com.bw.rikao_6_29.GongJu;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

import java.util.List;

public class TablVip extends FragmentPagerAdapter {

    private List<String>listtabl;
    private List<Fragment>listvip;

    public TablVip(@NonNull FragmentManager fm, List<String> listtabl, List<Fragment> listvip) {
        super(fm);
        this.listtabl = listtabl;
        this.listvip = listvip;
    }

    @NonNull
    @Override
    public Fragment getItem(int position) {
        return listvip.get(position);
    }

    @Override
    public int getCount() {
        return listvip.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return listtabl.get(position);
    }
}
package com.bw.rikao_6_29.GongJu;

import android.content.Context;

import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.facade.service.SerializationService;
import com.google.gson.Gson;

import java.lang.reflect.Type;

@Route(path = "/service/json")
public class JsonServiceImpl implements SerializationService {
    private Gson mGson;
    @Override
    public void init(Context context) {
        mGson = new Gson();
    }
    @Override
    public <T> T json2Object(String text, Class<T> clazz) {
        checkJson();
        return mGson.fromJson(text, clazz);
    }
    @Override
    public String object2Json(Object instance) {
        checkJson();
        return mGson.toJson(instance);
    }
    @Override
    public <T> T parseObject(String input, Type clazz) {
        checkJson();
        return mGson.fromJson(input, clazz);
    }
    public void checkJson() {
        if (mGson == null) {
            mGson = new Gson();
        }
    }
}
package com.bw.rikao_6_29.GongJu;

import android.content.Context;
import android.view.Gravity;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bw.rikao_6_29.R;

public class GuldeUrl {
    private GuldeUrl(){}

    private static  volatile GuldeUrl guldeUrl=null;

    public static GuldeUrl getGuldeUrl(){
        if(guldeUrl==null){
            synchronized (GuldeUrl.class){
                if(guldeUrl==null){
                    guldeUrl=new GuldeUrl();
                }
            }
        }
        return guldeUrl;
    }

    public  void GlideString(String urlapht, Context context, ImageView imageView){
        Glide.with(context)
                .load(urlapht)
                .error(R.drawable.ic_launcher_background)
                .thumbnail(0.1f)
                .placeholder(R.drawable.ic_launcher_foreground)
                .skipMemoryCache(false)
                .circleCrop()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(imageView);
    }
}
package com.bw.rikao_6_29.GongJu;

import android.util.SparseArray;

import androidx.fragment.app.Fragment;

import com.bw.rikao_6_29.mvp.view.fg.BlankFragmentA;
import com.bw.rikao_6_29.mvp.view.fg.BlankFragmentB;
import com.bw.rikao_6_29.mvp.view.fg.BlankFragmentC;

public class GongChang {
    public static final int H_A=0;
    public static final int H_B=1;
    public static final int H_C=2;
    private  static SparseArray<Fragment>sparseArray=new SparseArray<>();

    public static Fragment serc(int name){
        Fragment fragment=sparseArray.get(name);
        if(fragment==null){
            switch (name){
                case H_A:
                    fragment=new BlankFragmentA();
                    break;
                case H_B:
                    fragment=new BlankFragmentB();
                    break;
                case H_C:
                    fragment=new BlankFragmentC();
            }
        }
        sparseArray.put(name,fragment);
        return fragment;
    }
}
package com.bw.rikao_6_29.adapter;

import android.content.Context;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.bw.rikao_6_29.GongJu.GuldeUrl;
import com.bw.rikao_6_29.R;
import com.bw.rikao_6_29.entiy.ShiPinEnity;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;

import java.util.List;

public class ShiPinAdapter extends BaseQuickAdapter<ShiPinEnity.DataDTO, BaseViewHolder> {
    private Context context;

    public ShiPinAdapter(int layoutResId, @Nullable List<ShiPinEnity.DataDTO> data, Context context) {
        super(layoutResId, data);
        this.context = context;
    }

    @Override
    protected void convert(@NonNull BaseViewHolder baseViewHolder, ShiPinEnity.DataDTO dataDTO) {
            baseViewHolder.setText(R.id.textname,dataDTO.getAuthname());
            ImageView imageView=baseViewHolder.getView(R.id.username);
            GuldeUrl.getGuldeUrl().GlideString(dataDTO.getHeadpath(),context,imageView);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值