日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

抽基类+MVP+Retrofit+Rxjava+适配器+Recyclerview展示数据

發(fā)布時間:2024/1/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 抽基类+MVP+Retrofit+Rxjava+适配器+Recyclerview展示数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

implementation 'com.jakewharton:butterknife:8.8.1'
? ? annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
//輪播圖
? ? implementation 'com.youth.banner:banner:1.4.10'
//Fresco
? ? implementation 'com.facebook.fresco:fresco:1.9.0'
// Fresco 支持 GIF 動圖,需要添加
? ? implementation 'com.facebook.fresco:animated-gif:1.9.0'
? ? implementation 'com.facebook.fresco:imagepipeline-okhttp3:0.11.0'
//依賴begin
? ? implementation 'com.google.code.gson:gson:2.8.5'
//刷新的第三方
? ? implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.5.1'
? ? implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.5.1'
//RecyclerView
? ? implementation 'com.android.support:recyclerview-v7:28.0.0-alpha3'
? ? implementation 'com.android.support:design:28.0.0-alpha3'
//RecyclerView 上啦加載下拉刷新 https://github.com/XRecyclerView/XRecyclerView
? ? implementation('com.jcodecraeer:xrecyclerview:1.5.9') {
? ? ? ? exclude group: 'com.android.support'
? ? }
//狀態(tài)欄
? ? implementation 'com.jaeger.statusbarutil:library:1.5.1'
//網絡請求重要的依賴
//Retrofit
? ? implementation 'com.squareup.retrofit2:retrofit:2.1.0'
? ? implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
//rxjava
? ? implementation 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
? ? implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
//日志攔截器
? ? implementation 'com.squareup.okhttp3:logging-interceptor:3.6.0'
? ? implementation 'com.squareup.okhttp3:okhttp:3.5.0'
//ButterKnife
? ? implementation 'com.jakewharton:butterknife:8.8.1'
? ? annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
//跑馬燈
? ? implementation 'com.sunfusheng:marqueeview:1.3.3'
//Glide 加載圖片
? ? implementation 'com.github.bumptech.glide:glide:4.7.1'
//GreenDao
? ? implementation 'org.greenrobot:greendao:3.0.1'
? ? implementation 'org.greenrobot:greendao-generator:3.0.0'

?

?

?

?

?

package com.baiwei.tianlong.zhoukao_moni.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.baiwei.tianlong.zhoukao_moni.R;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class LieBiaoAdapter extends RecyclerView.Adapter<LieBiaoAdapter.LieBiaoHolder> {

? ? private List<LieBiaoBeans.DataBean> data;
? ? private Context context;

? ? public LieBiaoAdapter(List<LieBiaoBeans.DataBean> data, Context context) {
? ? ? ? this.data = data;
? ? ? ? this.context = context;
? ? }

? ? @NonNull
? ? @Override
? ? public LieBiaoHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
? ? ? ? View view = LayoutInflater.from(viewGroup.getContext())
? ? ? ? ? ? ? ? .inflate(R.layout.liebiao, viewGroup, false);
? ? ? ? return new LieBiaoHolder(view);
? ? }

? ? @Override
? ? public void onBindViewHolder(@NonNull LieBiaoHolder lieBiaoHolder, final int i) {
? ? ? ? String name = data.get(i).getName();
? ? ? ? String createtime = data.get(i).getCreatetime();
? ? ? ? String icon = data.get(i).getIcon();

? ? ? ? lieBiaoHolder.frescoLiebiao.setImageURI(Uri.parse(icon));
? ? ? ? lieBiaoHolder.liebiaoText.setText(name);
? ? ? ? lieBiaoHolder.liebiaoText1.setText(createtime);

? ? ? ? lieBiaoHolder.itemView.setOnClickListener(new View.OnClickListener() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onClick(View view) {
? ? ? ? ? ? ? ? if (onItemLieBiaoInstance!=null){
? ? ? ? ? ? ? ? ? ?onItemLieBiaoInstance.onItemClick(view,i);
? ? ? ? ? ? ? ? }

? ? ? ? ? ? }
? ? ? ? });
? ? }

? ? @Override
? ? public int getItemCount() {
? ? ? ? return data == null ? 0 : data.size();
? ? }

? ? public class LieBiaoHolder extends RecyclerView.ViewHolder {
? ? ? ? @BindView(R.id.fresco_liebiao)
? ? ? ? SimpleDraweeView frescoLiebiao;
? ? ? ? @BindView(R.id.liebiao_text)
? ? ? ? TextView liebiaoText;
? ? ? ? @BindView(R.id.liebiao_text1)
? ? ? ? TextView liebiaoText1;
? ? ? ? public LieBiaoHolder(@NonNull View itemView) {
? ? ? ? ? ? super(itemView);
? ? ? ? ? ? ButterKnife.bind(this,itemView);
? ? ? ? }
? ? }

? ? ?OnItemLieBiaoInstance ?onItemLieBiaoInstance;

? ? public interface OnItemLieBiaoInstance {
? ? ? ? void onItemClick(View view , int position);
? ? }

? ? public void setOnItemLieBiaoInstance(OnItemLieBiaoInstance onItemLieBiaoInstance) {
? ? ? ? this.onItemLieBiaoInstance = onItemLieBiaoInstance;
? ? }
}

?SheJiShiAdapter類

package com.baiwei.tianlong.zhoukao_moni.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.baiwei.tianlong.zhoukao_moni.R;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class SheJiShiAdapter extends RecyclerView.Adapter<SheJiShiAdapter.SheJiHolder> {

? ? private List<SheJiBeans.DataBean.DisplayBean> display;
? ? private Context context;

? ? public SheJiShiAdapter(List<SheJiBeans.DataBean.DisplayBean> display, Context context) {
? ? ? ? this.display = display;
? ? ? ? this.context = context;
? ? }

? ? @NonNull
? ? @Override
? ? public SheJiHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
? ? ? ? View view = LayoutInflater.from(viewGroup.getContext())
? ? ? ? ? ? ? ? .inflate(R.layout.shejiitem, viewGroup, false);
? ? ? ? return new SheJiHolder(view);
? ? }

? ? @Override
? ? ? ? public void onBindViewHolder(@NonNull SheJiHolder sheJiHolder, int i) {
? ? ? ? String avatar = display.get(i).getAvatar();
? ? ? ? String nick_name = display.get(i).getNick_name();
? ? ? ? sheJiHolder.frescoSheji.setImageURI(Uri.parse(avatar));
? ? ? ? sheJiHolder.shejiText.setText(nick_name);

? ? }

? ? @Override
? ? public int getItemCount() {
? ? ? ? return display == null ? 0 : display.size();
? ? }

? ? public class SheJiHolder extends RecyclerView.ViewHolder {
? ? ? ? @BindView(R.id.fresco_sheji)
? ? ? ? SimpleDraweeView frescoSheji;
? ? ? ? @BindView(R.id.sheji_text)
? ? ? ? TextView shejiText;

? ? ? ? public SheJiHolder(@NonNull View itemView) {
? ? ? ? ? ? super(itemView);
? ? ? ? ? ? ButterKnife.bind(this,itemView);
? ? ? ? }
? ? }
}

?

package com.baiwei.tianlong.zhoukao_moni.adapter;


import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.baiwei.tianlong.zhoukao_moni.R;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class TuSanAdapter extends RecyclerView.Adapter<TuSanAdapter.TuSanHodel> {

? ? private List<TuSanBeans.DataBean> data;
? ? private Context context;

? ? public TuSanAdapter(List<TuSanBeans.DataBean> data, Context context) {
? ? ? ? this.data = data;
? ? ? ? this.context = context;
? ? }


? ? @NonNull
? ? @Override
? ? public TuSanHodel onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
? ? ? ? View view = LayoutInflater.from(viewGroup.getContext())
? ? ? ? ? ? ? ? .inflate(R.layout.tusan_item, viewGroup, false);
? ? ? ? return new TuSanHodel(view);
? ? }

? ? @Override
? ? public void onBindViewHolder(@NonNull TuSanHodel tuSanHodel, int i) {
? ? ? ? String image_url = data.get(i).getImages().split("\\|")[0];
? ? ? ? String title = data.get(i).getTitle();
? ? ? ? String subhead = data.get(i).getSubhead();


? ? ? ? tuSanHodel.frescoTusan.setImageURI(Uri.parse(image_url));
? ? ? ? tuSanHodel.tusanText.setText(title);
? ? ? ? tuSanHodel.tusanText1.setText(subhead);

? ? }

? ? @Override
? ? public int getItemCount() {
? ? ? ? return data == null ? 0 : data.size();
? ? }

? ? public class TuSanHodel extends RecyclerView.ViewHolder {
? ? ? ? @BindView(R.id.fresco_tusan)
? ? ? ? SimpleDraweeView frescoTusan;
? ? ? ? @BindView(R.id.tusan_text)
? ? ? ? TextView tusanText;
? ? ? ? @BindView(R.id.tusan_text1)
? ? ? ? TextView tusanText1;

? ? ? ? public TuSanHodel(@NonNull View itemView) {
? ? ? ? ? ? super(itemView);
? ? ? ? ? ? ButterKnife.bind(this,itemView);
? ? ? ? }
? ? }
}

package com.baiwei.tianlong.zhoukao_moni.base;

import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

import butterknife.ButterKnife;

public abstract class BaseActivity<P extends BasePresenter> extends AppCompatActivity {
? ? //注入基類
? ? protected ?P presenter;

? ? @Override
? ? protected void onCreate(@Nullable Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);

? ? ? ? setContentView(provideLayoutId());

? ? ? ? //ButterKnitfe
? ? ? ? ButterKnife.bind(provideBindView());


? ? ? ? initView();

? ? ? ? presenter = providePresenter();

? ? ? ? initData();

? ? ? ? initListener();
? ? }

? ? protected abstract P providePresenter();

? ? protected void initListener() {
? ? }

? ? protected void initData() {
? ? }

? ? protected ?void initView(){

? ? };

? ? protected abstract Activity provideBindView();

? ? protected abstract int provideLayoutId();
}
?

?

package com.baiwei.tianlong.zhoukao_moni.base;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import butterknife.ButterKnife;
import butterknife.Unbinder;

public abstract class BaseFragment<P extends BasePresenter> extends Fragment {
? ? protected ?P prsenter;

? ? private View view;

? ? private Unbinder unbinder;

? ? @Nullable
? ? @Override
? ? public android.view.View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
? ? ? ? //加載布局
? ? ? ? if (view == null){
? ? ? ? ? ? view = inflater.inflate(provideFragmentLayoutID(), container, false);
? ? ? ? }
? ? ? ? ViewGroup parent = (ViewGroup) view.getParent();

? ? ? ? if (parent!= null){
? ? ? ? ? ? parent.removeView(view);
? ? ? ? }

? ? ? ? //ButterKifer
? ? ? ? unbinder = ButterKnife.bind(provideBindView(),view);
? ? ? ? return view;

? ? }

? ? protected abstract Object provideBindView();

? ? protected abstract int provideFragmentLayoutID();

? ? @Override
? ? public void onActivityCreated(@Nullable Bundle savedInstanceState) {
? ? ? ? super.onActivityCreated(savedInstanceState);
? ? ? ? prsenter = providePresenter();

? ? ? ? //初始化
? ? ? ? initView(view);
? ? ? ? initData();
? ? ? ? initListener();

? ? }

? ? protected void initListener() {
? ? }

? ? protected void initData() {
? ? }

? ? protected void initView(View view) {
? ? }

? ? protected abstract P providePresenter();

? ? @Override
? ? public void onDestroy() {
? ? ? ? prsenter.onDestory();
? ? ? ? super.onDestroy();
? ? }

? ? @Override
? ? public void onDestroyView() {
? ? ? ? super.onDestroyView();
? ? ? ? //Fresco 清理緩存
// ? ? ? ?ImagePipeline imagePipeline = Fresco.getImagePipeline();
// ? ? ? ?imagePipeline.clearMemoryCaches();
// ? ? ? ?imagePipeline.clearDiskCaches();
// ? ? ? ?imagePipeline.clearCaches();

? ? ? ? unbinder.unbind();
? ? }
}

?

package com.baiwei.tianlong.zhoukao_moni.base;

import android.content.Context;

import com.baiwei.tianlong.zhoukao_moni.App;

import io.reactivex.disposables.CompositeDisposable;

public abstract class BasePresenter<V extends View> {
? ? protected V view;

? ? //取消訂閱
? ? protected CompositeDisposable compositeDisposable = new CompositeDisposable();

? ? public BasePresenter(V view) {
? ? ? ? this.view = view;
? ? ? ? initModel();
? ? }
? ? //注入model方法
? ? protected ?abstract ? void initModel();


? ? //處理內存溢出
? ? void onDestory(){
? ? ? ? view = null;
? ? ? ? compositeDisposable.clear();
? ? }

? ? protected Context context(){
? ? ? ? if (view!=null && view.context()!=null){
? ? ? ? ? ? return view.context();
? ? ? ? }else {
? ? ? ? ? ? return App.getAppContext();
? ? ? ? }
? ? }
}
?

package com.baiwei.tianlong.zhoukao_moni.utils;

public ?class ConstantApi {
? ? public static final String BASE_URL="https://www.zhaoapi.cn/";

? ? public static final String AD_URL="quarter/getAd";
? ? public static final String CATAGORY_URL="product/getCatagory";
? ? public static final String PRODUCTS_URL="product/getProducts";

? ? public static final String BASE_URL1="https://app.tuozhe8.com/";
? ? public static final String SHE_JI="api.php/api/Lists/designer?token=&version=1.7";

}
?

package com.baiwei.tianlong.zhoukao_moni.utils;

import android.util.Log;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;

public class RetrofitcManager {
? ? private final Retrofit retrofit;

? ? private static class SingHolder{
? ? ? ? private static final RetrofitcManager INSTANT = new RetrofitcManager(ConstantApi.BASE_URL);
? ? ? ? private static final RetrofitcManager INSTANT1 = new RetrofitcManager(ConstantApi.BASE_URL1);
? ? }

? ? public static RetrofitcManager getDefault(){
? ? ? ? return SingHolder.INSTANT;
? ? }

? ? public static RetrofitcManager getDefault1(){
? ? ? ? return SingHolder.INSTANT1;
? ? }

? ? public RetrofitcManager(String baseUrl) {
? ? ? ? this.retrofit = new Retrofit.Builder()
? ? ? ? ? ? ? ? ? ? ? ? ? ? .baseUrl(baseUrl)
? ? ? ? ? ? ? ? ? ? ? ? ? ? .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
? ? ? ? ? ? ? ? ? ? ? ? ? ? .addConverterFactory(GsonConverterFactory.create())
? ? ? ? ? ? ? ? ? ? ? ? ? ? .build();
? ? }

? ? //網絡攔截器
? ? private OkHttpClient buildOkHttpClient(){
? ? ? ? HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void log(String message) {
? ? ? ? ? ? ? ? Log.i("xxx", "日志信息:" + message);
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
? ? ? ? return new OkHttpClient.Builder()
? ? ? ? ? ? ? ? .addInterceptor(interceptor)
? ? ? ? ? ? ? ? .connectTimeout(5, TimeUnit.SECONDS)
? ? ? ? ? ? ? ? .writeTimeout(5, TimeUnit.SECONDS)
? ? ? ? ? ? ? ? .readTimeout(5, TimeUnit.SECONDS)
? ? ? ? ? ? ? ? .addInterceptor(interceptor)
? ? ? ? ? ? ? ? .build();

? ? }
? ? public <T> T create(Class<T> tClass) {
? ? ? ? return retrofit.create(tClass);
? ? }


}
?

public interface ModelApi {

? ? //輪播
? ? @GET(ConstantApi.AD_URL)
? ? Flowable<LunBoBeans> getLunBo();

? ? //設計
? ? @GET(ConstantApi.SHE_JI)
? ? Flowable<SheJiBeans> getSheJi();

? ? //列表
? ? @GET(ConstantApi.CATAGORY_URL)
? ? Flowable<LieBiaoBeans> getLieBiao();

}

?

package com.baiwei.tianlong.zhoukao_moni.mvp.main.model;

import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LunBoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.baiwei.tianlong.zhoukao_moni.utils.RetrofitcManager;

import io.reactivex.Flowable;

public class ModelApiTask implements ModelApi {
? ? @Override
? ? public Flowable<LunBoBeans> getLunBo() {
? ? ? ? return RetrofitcManager.getDefault().create(ModelApi.class).getLunBo();
? ? }

? ? @Override
? ? public Flowable<SheJiBeans> getSheJi() {
? ? ? ? return RetrofitcManager.getDefault1().create(ModelApi.class).getSheJi();
? ? }

? ? @Override
? ? public Flowable<LieBiaoBeans> getLieBiao() {
? ? ? ? return RetrofitcManager.getDefault().create(ModelApi.class).getLieBiao();
? ? }


}
?

package com.baiwei.tianlong.zhoukao_moni.mvp.main.presenter;

import com.baiwei.tianlong.zhoukao_moni.base.BasePresenter;

import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.ModelApiTask;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LunBoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.view.ZhouKaoView;


import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import io.reactivex.subscribers.DisposableSubscriber;

public class ZhouKaoPresenter extends BasePresenter<ZhouKaoView> {

? ? private ModelApiTask modelApiTask;

? ? public ZhouKaoPresenter(ZhouKaoView view) {
? ? ? ? super(view);
? ? }

? ? @Override
? ? protected void initModel() {
? ? ? ? modelApiTask = new ModelApiTask();
? ? }

? ? //輪播圖
? ? public void getLunBo(){
? ? ? ? modelApiTask.getLunBo()
? ? ? ? ? ? ? ? ? ? .subscribeOn(Schedulers.io())
? ? ? ? ? ? ? ? ? ? .observeOn(AndroidSchedulers.mainThread())
? ? ? ? ? ? ? ? ? ? .subscribe(new DisposableSubscriber<LunBoBeans>() {
? ? ? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? ? ? public void onNext(LunBoBeans lunBoBeans) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? if ("0".equals(lunBoBeans.getCode())){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getLunBoSuccess(lunBoBeans);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getLunBoError(lunBoBeans.getMsg());
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? ? ? public void onError(Throwable t) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getLunBoError(t.toString());
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? ? ? public void onComplete() {

? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? });
? ? }
? ? //列表
? ? public void getLieBiao(){
? ? ? ? modelApiTask.getLieBiao()
? ? ? ? ? ? ? ? ? ? ?.subscribeOn(Schedulers.io())
? ? ? ? ? ? ? ? ? ? ?.observeOn(AndroidSchedulers.mainThread())
? ? ? ? ? ? ? ? ? ? .subscribe(new DisposableSubscriber<LieBiaoBeans>() {
? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onNext(LieBiaoBeans lieBiaoBeans) {
? ? ? ? ? ? ? ? ? ? ? ? if ("0".equals(lieBiaoBeans.getCode())){
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getLieBiaoSuccess(lieBiaoBeans);
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getLieBiaoError(lieBiaoBeans.getMsg());
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onError(Throwable t) {
? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getLieBiaoError(t.toString());
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onComplete() {

? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? });
? ? }
? ? //設計
? ? public void getSheJi(){
? ? ? ? modelApiTask.getSheJi()
? ? ? ? ? ? ? ? .subscribeOn(Schedulers.io())
? ? ? ? ? ? ? ? .observeOn(AndroidSchedulers.mainThread())
? ? ? ? ? ? ? ? .subscribe(new DisposableSubscriber<SheJiBeans>() {
? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onNext(SheJiBeans sheJiBeans) {
? ? ? ? ? ? ? ? ? ? ? ? if ("1".equals(sheJiBeans.getCode())){
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getSheJiSuccess(sheJiBeans);
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getSheJiError(sheJiBeans.getMessage());
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onError(Throwable t) {
? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getSheJiError(t.toString());
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onComplete() {

? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? });
? ? }

}
?

package com.baiwei.tianlong.zhoukao_moni.mvp.main.view;

import com.baiwei.tianlong.zhoukao_moni.base.View;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LunBoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;

public interface ZhouKaoView extends View {
? ? //輪播
? ? void getLunBoSuccess(LunBoBeans lunBoBeans);

? ? void getLunBoError(String error);

? ? //設計師
? ? void ?getSheJiSuccess(SheJiBeans sheJiBeans);

? ? void getSheJiError(String error);

? ? //列表
? ? void getLieBiaoSuccess(LieBiaoBeans lieBiaoBeans);

? ? void getLieBiaoError(String error);


}

?

?

package com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model;

import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.utils.ConstantApi;

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

public interface TuSanApi {
? ? //圖三
? ? @GET(ConstantApi.PRODUCTS_URL)
? ? Flowable<TuSanBeans> getTuSans(@Query("pscid") int pscid);
}

?

package com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model;

import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.ModelApi;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.utils.RetrofitcManager;

import io.reactivex.Flowable;

public class TuSanApiTask implements TuSanApi {
? ? @Override
? ? public Flowable<TuSanBeans> getTuSans(int pscid) {
? ? ? ? return RetrofitcManager.getDefault().create(TuSanApi.class).getTuSans(pscid);
? ? }
}
?

?

package com.baiwei.tianlong.zhoukao_moni.mvp.tusan.presenter;

import com.baiwei.tianlong.zhoukao_moni.base.BasePresenter;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.view.ZhouKaoView;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.TuSanApiTask;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.view.TuSanView;

import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import io.reactivex.subscribers.DisposableSubscriber;

public class TuSanPresenter extends BasePresenter<TuSanView> {

? ? private TuSanApiTask tuSanApiTask;

? ? public TuSanPresenter(TuSanView view) {
? ? ? ? super(view);
? ? }

? ? @Override
? ? protected void initModel() {
? ? ? ? tuSanApiTask = new TuSanApiTask();
? ? }

? ? //圖三
? ? public void getTuSan(int pscid){
? ? ? ? tuSanApiTask.getTuSans(pscid)
? ? ? ? ? ? ? ? .subscribeOn(Schedulers.io())
? ? ? ? ? ? ? ? .observeOn(AndroidSchedulers.mainThread())
? ? ? ? ? ? ? ? .subscribe(new DisposableSubscriber<TuSanBeans>() {
? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onNext(TuSanBeans tuSanBeans) {
? ? ? ? ? ? ? ? ? ? ? ? if ("0".equals(tuSanBeans.getCode())){
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getTuSanSuccess(tuSanBeans);
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getTuSanError(tuSanBeans.getMsg());
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onError(Throwable t) {
? ? ? ? ? ? ? ? ? ? ? ? if (view!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? view.getTuSanError(t.toString());
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onComplete() {

? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? });
? ? }
}
?

package com.baiwei.tianlong.zhoukao_moni.mvp.tusan.view;

import com.baiwei.tianlong.zhoukao_moni.base.View;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;

public interface TuSanView extends View{

? ? //圖三
? ? void getTuSanSuccess(TuSanBeans tuSanBeans);

? ? void getTuSanError(String error);
}
?

package com.baiwei.tianlong.zhoukao_moni;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

import com.baiwei.tianlong.zhoukao_moni.adapter.LieBiaoAdapter;
import com.baiwei.tianlong.zhoukao_moni.adapter.SheJiShiAdapter;
import com.baiwei.tianlong.zhoukao_moni.base.BaseActivity;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LieBiaoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.LunBoBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.model.beans.SheJiBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.presenter.ZhouKaoPresenter;
import com.baiwei.tianlong.zhoukao_moni.mvp.main.view.ZhouKaoView;
import com.facebook.drawee.view.SimpleDraweeView;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.listener.OnBannerListener;
import com.youth.banner.loader.ImageLoader;

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

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends BaseActivity<ZhouKaoPresenter> implements ZhouKaoView {
? ? private static final String TAG = "MainAtivity";
? ? @BindView(R.id.banner)
? ? Banner banner;
? ? @BindView(R.id.sheji)
? ? RecyclerView sheji;
? ? @BindView(R.id.liebiao)
? ? RecyclerView liebiao;


? ? private List<String> listLunBo = new ArrayList<>();
? ? private List<String> titles = new ArrayList<>();


? ? //注入p
? ? @Override
? ? protected ZhouKaoPresenter providePresenter() {
? ? ? ? return new ZhouKaoPresenter(this);
? ? }

? ? @Override
? ? protected Activity provideBindView() {
? ? ? ? return this;
? ? }

? ? @Override
? ? protected int provideLayoutId() {
? ? ? ? return R.layout.activity_main;
? ? }

? ? @Override
? ? protected void initData() {
? ? ? ? super.initData();
? ? ? ? if (presenter!=null){
? ? ? ? ? ? presenter.getLunBo();
? ? ? ? }
? ? }


? ? //輪播
? ? @Override
? ? public void getLunBoSuccess(final LunBoBeans lunBoBeans) {

? ? ? ? List<LunBoBeans.DataBean> data = lunBoBeans.getData();

? ? ? ? for (int i = 0; i < data.size(); i++) {
? ? ? ? ? ? String icon = data.get(i).getIcon();
? ? ? ? ? ? String title = data.get(i).getTitle();
? ? ? ? ? ? String url = data.get(i).getUrl();
? ? ? ? ? ? listLunBo.add(icon);
? ? ? ? ? ? titles.add(title);
? ? ? ? }
? ? ? ? banner.setImageLoader(new MyLoader());
? ? ? ? banner.setImages(listLunBo);
? ? ? ? banner.setDelayTime(2000);
? ? ? ? banner.setBannerTitles(titles);
? ? ? ? banner.setBannerAnimation(Transformer.BackgroundToForeground);
? ? ? ? banner.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE);
? ? ? ? banner.start();

? ? ? ? banner.setOnBannerListener(new OnBannerListener() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void OnBannerClick(int position) {
? ? ? ? ? ? ? ? final String url = lunBoBeans.getData().get(position).getUrl();
? ? ? ? ? ? ? ? Intent intent ?= new Intent(MainActivity.this,WebActivity.class);
? ? ? ? ? ? ? ? intent.putExtra("url",url);
? ? ? ? ? ? ? ? startActivity(intent);
? ? ? ? ? ? }
? ? ? ? });

? ? ? ? presenter.getSheJi();
? ? }

? ? @Override
? ? public void getLunBoError(String error) {
? ? ? ? Log.d(TAG, "getLunBoError: " + error);
? ? }


? ? //設計師
? ? @Override
? ? public void getSheJiSuccess(SheJiBeans sheJiBeans) {
? ? ? ? List<SheJiBeans.DataBean.DisplayBean> display = sheJiBeans.getData().getDisplay();
? ? ? ??
? ? ? ? LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
? ? ? ? linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
? ? ? ? sheji.setLayoutManager(linearLayoutManager);
? ? ? ? SheJiShiAdapter adapter = new SheJiShiAdapter(display,this);
? ? ? ? sheji.setAdapter(adapter);

? ? ? ? presenter.getLieBiao();
? ? ? ??
? ? }

? ? @Override
? ? public void getSheJiError(String error) {
? ? ? ? Log.d(TAG, "getSheJiError: " + error);
? ? }
? ??
? ??
? ? //列表
? ? @Override
? ? public void getLieBiaoSuccess(LieBiaoBeans lieBiaoBeans) {
? ? ? ? List<LieBiaoBeans.DataBean> data = lieBiaoBeans.getData();
? ? ? ? LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
? ? ? ? linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);

? ? ? ? liebiao.setLayoutManager(linearLayoutManager);
? ? ? ? LieBiaoAdapter lieBiaoAdapter = new LieBiaoAdapter(data,this);
? ? ? ? liebiao.setAdapter(lieBiaoAdapter);

? ? ? ? lieBiaoAdapter.setOnItemLieBiaoInstance(new LieBiaoAdapter.OnItemLieBiaoInstance() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onItemClick(View view, int position) {
? ? ? ? ? ? ? ? Intent intent ?= new Intent(MainActivity.this,TuSanActivity.class);
? ? ? ? ? ? ? ? startActivity(intent);
? ? ? ? ? ? }
? ? ? ? });

? ? }

? ? @Override
? ? public void getLieBiaoError(String error) {
? ? ? ? Log.d(TAG, "getLieBiaoError: " + error);
? ? }

? ? @Override
? ? public Context context() {
? ? ? ? return null;
? ? }

? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? // TODO: add setContentView(...) invocation
? ? ? ? ButterKnife.bind(this);
? ? }

? ? //圖片加載
? ? private class MyLoader extends ImageLoader {

? ? ? ? @Override
? ? ? ? public void displayImage(Context context, Object path, ImageView imageView) {
? ? ? ? ? ? imageView.setImageURI(Uri.parse((String) path));
? ? ? ? }

? ? ? ? @Override
? ? ? ? public ImageView createImageView(Context context) {
? ? ? ? ? ? SimpleDraweeView simpleDraweeView = new SimpleDraweeView(context);
? ? ? ? ? ? return simpleDraweeView;
? ? ? ? }
? ? }
}
?

package com.baiwei.tianlong.zhoukao_moni;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.baiwei.tianlong.zhoukao_moni.adapter.TuSanAdapter;
import com.baiwei.tianlong.zhoukao_moni.base.BaseActivity;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.model.beans.TuSanBeans;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.presenter.TuSanPresenter;
import com.baiwei.tianlong.zhoukao_moni.mvp.tusan.view.TuSanView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class TuSanActivity extends BaseActivity<TuSanPresenter> implements TuSanView {


? ? @BindView(R.id.tusan)
? ? RecyclerView tusan;

? ? @Override
? ? protected TuSanPresenter providePresenter() {
? ? ? ? return new TuSanPresenter(this);
? ? }

? ? @Override
? ? protected Activity provideBindView() {
? ? ? ? return this;
? ? }

? ? @Override
? ? protected int provideLayoutId() {
? ? ? ? return R.layout.activity_tu_san;
? ? }

? ? @Override
? ? protected void initData() {
? ? ? ? super.initData();
? ? ? ? presenter.getTuSan(1);
? ? }

? ? @Override
? ? public void getTuSanSuccess(TuSanBeans tuSanBeans) {
? ? ? ? List<TuSanBeans.DataBean> data = tuSanBeans.getData();
? ? ? ? LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
? ? ? ? linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);

? ? ? ? tusan.setLayoutManager(linearLayoutManager);


? ? ? ? TuSanAdapter tuSanAdapter = new TuSanAdapter(data, this);
? ? ? ? tusan.setAdapter(tuSanAdapter);


? ? }

? ? @Override
? ? public void getTuSanError(String error) {

? ? }

? ? @Override
? ? public Context context() {
? ? ? ? return this;
? ? }

? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? // TODO: add setContentView(...) invocation
? ? ? ? ButterKnife.bind(this);
? ? }
}
?

?

package com.baiwei.tianlong.zhoukao_moni;

import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.Toast;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class WebActivity extends AppCompatActivity {

? ? private static final String TAG = "WebAtivity";

? ? @BindView(R.id.web)
? ? WebView web;
? ? @BindView(R.id.fanhui)
? ? Button fanhui;


? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_web);
? ? ? ? ButterKnife.bind(this);

? ? ? ? int taskId = getTaskId();

? ? ? ? Intent intent = getIntent();
? ? ? ? String url = intent.getStringExtra("url");
? ? ? ? Toast.makeText(this,url,Toast.LENGTH_SHORT).show();


? ? ? ? web.loadUrl(url);
? ? ? ? WebSettings webSettings = web.getSettings();
? ? ? ? webSettings.setJavaScriptEnabled(true);


? ? }

? ? @OnClick(R.id.fanhui)
? ? public void onViewClicked() {
? ? ? ? Intent intent = new Intent();
? ? ? ? setResult(2,intent);
? ? ? ? finish();
? ? }

? ? @Override
? ? protected void onDestroy() {
? ? ? ? super.onDestroy();
? ? ? ? web.removeAllViews();
? ? ? ? web.destroy();
? ? }
}
?

總結

以上是生活随笔為你收集整理的抽基类+MVP+Retrofit+Rxjava+适配器+Recyclerview展示数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人福利小视频 | 精精国产xxxx视频在线 | 伊人色爱 | 日本性爱视频在线观看 | 91视频88av| 日本午夜啪啪 | 欧美福利第一页 | 青娱网电信一区电信二区电信三区 | 国产色在线观看 | 亚洲精品午夜精品 | 美国做爰xxxⅹ性视频 | 美女诱惑一区 | 岛国激情 | 久久久精品一区二区涩爱 | 亚洲精视频| 亚洲少妇一区二区 | 人禽l交视频在线播放 视频 | 快播色图 | 色中文字幕 | 暖暖av在线 | aa免费视频| 久久国产精品久久久久久电车 | 国产精品人 | 97播播 | 18av在线视频 | 一级片一区 | 国产哺乳奶水91在线播放 | 五月天亚洲综合 | 色哟哟国产精品 | 美女高潮在线 | 国产suv精品一区二区6 | 中文幕无线码中文字蜜桃 | www.日韩在线| 成人性生生活性生交全黄 | 久久黄色免费视频 | 久久涩 | 国产精品社区 | 亚洲图片 自拍偷拍 | 成人黄色网 | 91在线视频免费播放 | 韩国黄色一级片 | 男女插插视频 | 国产精品久久久久久久久久久久久久 | 色久天堂 | 韩国在线不卡 | 黑人巨大精品欧美黑寡妇 | 欧美成人性生活片 | 新呦u视频一区二区 | 看全色黄大色黄大片女一次牛 | 四虎影院免费视频 | 亚洲成人网页 | 91成人免费电影 | 中国美女黄色 | 久久精品人人 | 婷婷久久丁香 | 国产a√精品区二区三区四区 | 午夜不卡在线观看 | 在线中文字幕av | 波多野结衣一区二区三区中文字幕 | eeuss鲁片一区二区三区在线观看 | 婷婷资源网 | 成人性视频sm. | 一区二区三区黄色 | 亚洲欧美日韩一区二区三区四区 | www国产亚洲精品久久网站 | 亚洲色图图 | 香蕉视频在线观看免费 | www,久久久 | 探花国产精品一区二区 | 国产在线精品一区二区三区 | 天天做天天干 | 一区二区三区精彩视频 | 国产成人午夜精品无码区久久 | 中日韩精品视频在线观看 | 国产精品99久久久久久久久 | 熟女人妻在线视频 | 欧美成人国产精品一区二区 | 国产精品女人精品久久久天天 | 91精品综合久久久久久五月天 | 中文字幕一区二 | a级黄色网 | 国产女人18毛片水18精 | 大黄毛片 | 在线观看视频99 | 国产一区二区三区四区五区六区 | 国产又色又爽无遮挡免费动态图 | 大黑人交交护士xxxxhd | 超碰最新在线 | 亚洲男人的天堂在线观看 | 性久久久久久久久久 | 免费黄网站在线看 | 午夜精品导航 | 91麻豆视频网站 | www亚洲视频 | 欧美性生交xxxxx | 外国电影免费观看高清完整版 | www五月婷婷 | 特黄1级潘金莲 | 蜜桃一区二区 |