依赖===========================================

implementation 'com.roughike:bottom-bar:1.3.3'
implementation 'com.jcodecraeer:xrecyclerview:1.3.2'
implementation 'com.android.support:design:27.1.1'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation "io.reactivex.rxjava2:rxjava:2.1.13"//使retrofit支持Rxjava
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0' //使retrofit支持Gson解析
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'com.google.dagger:dagger:2.8'
annotationProcessor 'com.google.dagger:dagger-compiler:2.7'
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
implementation 'com.facebook.fresco:fresco:1.9.0'
implementation 'org.greenrobot:greendao:3.2.2' // add library

权限======================================

<uses-permission android:name="android.permission.INTERNET"/>
android:name=".View.App.MyApp"

布局===========================================

main_activity

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".View.activity.MainActivity">

    <FrameLayout
        android:id="@+id/fl"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</LinearLayout>

fragment_duanzi==========================================

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#FF1ABFD9">

        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_centerVertical="true"
            android:background="@drawable/user_icon"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_centerVertical="true"
            android:text="段子"/>

        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:background="@drawable/edit_icon"/>

    </RelativeLayout>

    <com.jcodecraeer.xrecyclerview.XRecyclerView
        android:id="@+id/xrl"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </com.jcodecraeer.xrecyclerview.XRecyclerView>

</LinearLayout>

xrv_layout=======================================

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/img"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_margin="3dp"
            fresco:roundAsCircle="true" />

        <LinearLayout
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:layout_margin="3dp"
            android:orientation="vertical">

            <TextView
                android:id="@+id/tv_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="123"
                android:textColor="#f00"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/tv_time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="123"
                android:textSize="16sp" />

        </LinearLayout>

        <ImageView
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="150dp"
            android:src="@drawable/add_icon" />

    </LinearLayout>

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/img_xia"
        android:layout_width="match_parent"
        android:layout_height="200dp" />

</LinearLayout>

功能======================================

MainActivity===========================================

package com.example.moni2.View.activity;

import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.example.moni2.R;
import com.example.moni2.View.framgnet.DuanziFragment;

public class MainActivity extends AppCompatActivity {@Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        DuanziFragment duanziFragment = new DuanziFragment();
        FragmentManager manager = getSupportFragmentManager();
        manager.beginTransaction().replace(R.id.fl, duanziFragment).commit();
    }
}

DuanziAdapter===============================

package com.example.moni2.View.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.moni2.Modle.bena.DuanziBean;
import com.example.moni2.R;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

import io.reactivex.annotations.NonNull;

public class DuanziAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {private Context context;
    private List<DuanziBean.DataBean> list;
    private LayoutInflater inflater;

    public DuanziAdapter(Context context, List<DuanziBean.DataBean> list) {this.context = context;
        this.list = list;
        inflater = LayoutInflater.from(context);
    }@NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View view = inflater.inflate(R.layout.xrv_layout, parent, false);
        return new MyViewHolder(view);
    }@Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {DuanziBean.DataBean dataBean = list.get(position);
        MyViewHolder myViewHolder = (MyViewHolder) holder;
        String imgUrls = (String) dataBean.getImgUrls();
        String imgUrl = "https://www.zhaoapi.cn/images/1530797853445head_icon.jpg";
        if (!TextUtils.isEmpty(imgUrls)) {imgUrl = imgUrls.split("\\|")[0];
        }myViewHolder.iv.setImageURI(imgUrl);
        myViewHolder.tvName.setText(dataBean.getUser().getNickname() + "");
        myViewHolder.tvTime.setText(dataBean.getCreateTime());
    }@Override
    public int getItemCount() {return list.size();
    }private class MyViewHolder extends RecyclerView.ViewHolder {private final SimpleDraweeView iv;
        private final TextView tvName;
        private final TextView tvTime;

        public MyViewHolder(View itemView) {super(itemView);
            iv = itemView.findViewById(R.id.img);
            tvName = itemView.findViewById(R.id.tv_name);
            tvTime = itemView.findViewById(R.id.tv_time);
        }}public void refresh(List<DuanziBean.DataBean> tempList) {//清楚原先集合里的内容
        this.list.clear();
        this.list.addAll(tempList);
        notifyDataSetChanged();
    }public void loadMore(List<DuanziBean.DataBean> tempList) {this.list.addAll(tempList);
        notifyDataSetChanged();
    }public int getListNum(){return this.list.size();
    }
}

MyApp=======================

package com.example.moni2.View.App;

import android.app.Application;

import com.facebook.drawee.backends.pipeline.Fresco;

public class MyApp extends Application {@Override
    public void onCreate() {super.onCreate();
        Fresco.initialize(this);
    }
}

BeasFrament===================================

package com.example.moni2.View.framgnet;

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

import com.example.moni2.Modle.ui.BaseContract;
import com.example.moni2.Presenter.IBase;

import javax.inject.Inject;

import io.reactivex.annotations.NonNull;
import io.reactivex.annotations.Nullable;

public abstract class  BaseFragment<T extends BaseContract.BasePresenter> extends Fragment implements IBase,
        BaseContract.BaseView {
@Inject
protected T mPresenter;

@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable BundlesavedInstanceState) {inject();
        View view = inflater.inflate(getContentLayout(), null);
        mPresenter.attchView(this);
        initView(view);
        return view;
        }@Override
public void onDestroy() {super.onDestroy();
        mPresenter.detachView();
        }@Override
        public void showLoading() {}@Override
        public void dismissLoading() {}
}

DuanziFragnent===========================

package com.example.moni2.View.framgnet;

import android.support.v7.widget.LinearLayoutManager;
import android.view.View;

import com.example.moni2.Modle.DuanziContract;
import com.example.moni2.Modle.bena.DuanziBean;
import com.example.moni2.Modle.utils.DaggerHttpComponent;
import com.example.moni2.Presenter.DuanziPresenter;
import com.example.moni2.R;
import com.example.moni2.View.adapter.DuanziAdapter;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

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

public class DuanziFragment extends BaseFragment<DuanziPresenter> implements DuanziContract.View {private XRecyclerView xlv;
    private List<DuanziBean.DataBean> list = new ArrayList<>();
    private DuanziAdapter adapter;
    private boolean isRefresh = true;
    private int page = 1;

    @Override
    public int getContentLayout() {return R.layout.fragment_duanzi;
    }@Override
    public void initView(View view) {xlv = view.findViewById(R.id.xrl);
        xlv.setLayoutManager(new LinearLayoutManager(getContext()));
        adapter = new DuanziAdapter(getContext(), list);
        xlv.setAdapter(adapter);
        //判断数据库中是否有数据
        //MyDataBeanDao myDataBeanDao = MyApp.getDaoSession().getMyDataBeanDao();
        //List<MyDataBean> list = myDataBeanDao.queryBuilder().build().list();
        if (list != null && list.size() > 0) {//说明数据库有数据
        } else {mPresenter.getDuanzi(page + "");
        }//设置刷新和加载更多监听
        xlv.setLoadingListener(new XRecyclerView.LoadingListener() {@Override
            public void onRefresh() {//刷新
                page = 1;
                isRefresh = true;
                mPresenter.getDuanzi(page + "");
            }@Override
            public void onLoadMore() {//加载更多
                page++;
                isRefresh = false;
                mPresenter.getDuanzi(page + "");

            }});

    }@Override
    public void inject() {DaggerHttpComponent.builder().build().inject(this);
    }@Override
    public void onSuccess(List<DuanziBean.DataBean> list) {if (isRefresh) {adapter.refresh(list);
            xlv.refreshComplete();
        } else {adapter.loadMore(list);
            int listNum = adapter.getListNum();
            xlv.loadMoreComplete();
            int size = list.size();
            int count = listNum + size;
            if (count >= 20) {xlv.setLoadingMoreEnabled(false);
            }}}
}

IBeas===============================

package com.example.moni2.Presenter;

import android.view.View;

public interface IBase {int getContentLayout();

    void initView(View view);

    void inject();
}

BeasPresenter====================================

package com.example.moni2.Presenter;

import com.example.moni2.Modle.ui.BaseContract;

public class BasePresenter <T extends BaseContract.BaseView> implements BaseContract.BasePresenter<T> {protected T mView;

    @Override
    public void attchView(T view) {if(view !=null){this.mView = view;
        }}@Override
    public void detachView() {if(mView !=null){this.mView = null;
        }}
}

DuanziPresneter========================

package com.example.moni2.Presenter;

import android.annotation.SuppressLint;

import com.example.moni2.Modle.DuanziContract;
import com.example.moni2.Modle.bena.DuanziBean;
import com.example.moni2.Modle.bena.MyDataBean;
import com.example.moni2.Modle.nmet.DuanziApi;
import com.example.moni2.View.App.MyApp;

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

import javax.inject.Inject;

import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;

public class DuanziPresenter extends BasePresenter<DuanziContract.View> implements DuanziContract.Presenter {private DuanziApi duanziApi;

    @Inject
    public DuanziPresenter(DuanziApi duanziApi) {this.duanziApi = duanziApi;
    }@SuppressLint("CheckResult")@Override
    public void getDuanzi(String page) {duanziApi.getDuanzi(page).subscribeOn(Schedulers.io()).map(new Function<DuanziBean, List<DuanziBean.DataBean>>() {@Override
                    public List<DuanziBean.DataBean> apply(DuanziBean duanziBean) throws Exception {return duanziBean.getData();
                    }}).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<List<DuanziBean.DataBean>>() {@Override
                    public void accept(List<DuanziBean.DataBean> dataBeans) throws Exception {//DaoSession daoSession = MyApp.getDaoSession();
                        List<MyDataBean> list = new ArrayList<>();
                        //MyDataBeanDao myDataBeanDao = daoSession.getMyDataBeanDao();
                        for (int i = 0; i < dataBeans.size(); i++) {DuanziBean.DataBean dataBean = dataBeans.get(i);
                            MyDataBean myDataBean = new MyDataBean();
                            myDataBean.setAge(dataBean.getUser().getAge() + "");
                            myDataBean.setCommentNum(dataBean.getCommentNum() + "");
                            myDataBean.setContent(dataBean.getContent());
                            myDataBean.setCreateTime(dataBean.getCreateTime());
                            myDataBean.setFans(dataBean.getUser().getFans());
                            myDataBean.setFollow(dataBean.getUser().isFollow());
                            myDataBean.setIcon(dataBean.getUser().getIcon() + "");
                            myDataBean.setImgUrls((String)(dataBean.getImgUrls()));
                            list.add(myDataBean);
                        }//myDataBeanDao.insertInTx(list);
                        mView.onSuccess(dataBeans);
                    }});

    }
}

HttpModle============================

package com.example.moni2.Modle.Imodle;

import com.example.moni2.Modle.nmet.Api;
import com.example.moni2.Modle.nmet.DuanziApi;
import com.example.moni2.Modle.nmet.DuanziApiService;
import com.example.moni2.Modle.nmet.MyInterceptor;

import java.util.concurrent.TimeUnit;

import dagger.Module;
import dagger.Provides;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;

@Module
public class HttpModule {@Provides
    OkHttpClient.Builder provideOkHttpClientBuilder() {return new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).readTimeout(20, TimeUnit.SECONDS).writeTimeout(20, TimeUnit.SECONDS);
    }@Provides
    DuanziApi provideDuanApi(OkHttpClient.Builder builder) {builder.addInterceptor(new MyInterceptor());
        Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.baseUrl).addCallAdapterFactory(RxJava2CallAdapterFactory.create()).addConverterFactory(GsonConverterFactory.create()).client(builder.build()).build();
        DuanziApiService duanziApiService = retrofit.create(DuanziApiService.class);
        return DuanziApi.getDuanziApi(duanziApiService);
    }
}

Api=====================

package com.example.moni2.Modle.nmet;

public interface Api {String baseUrl = "https://www.zhaoapi.cn/";
}

DuanziApi==========================

package com.example.moni2.Modle.nmet;

import com.example.moni2.Modle.bena.DuanziBean;

import io.reactivex.Observable;

public class DuanziApi {private static DuanziApi duanziApi;
    private DuanziApiService duanziApiService;

    private DuanziApi(DuanziApiService duanziApiService) {this.duanziApiService = duanziApiService;
    }public static DuanziApi getDuanziApi(DuanziApiService duanziApiService) {if (duanziApi == null) {duanziApi = new DuanziApi(duanziApiService);
        }return duanziApi;
    }public Observable<DuanziBean> getDuanzi(String page) {return duanziApiService.getDuanzi(page);
    }}

DuanziApiService========================

package com.example.moni2.Modle.nmet;

import com.example.moni2.Modle.bena.DuanziBean;

import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

public interface DuanziApiService {@FormUrlEncoded
    @POST("quarter/getJokes")io.reactivex.Observable<DuanziBean> getDuanzi(@Field("page") String page);
}

MyInterceptor=============================

package com.example.moni2.Modle.nmet;

import java.io.IOException;

import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;

public class MyInterceptor implements Interceptor {@Override
    public Response intercept(Chain chain) throws IOException {//创建一个FormBody.Builder对象,用于添加公共参数
        FormBody.Builder builder = new FormBody.Builder();
        //先获取原始的请求
        Request originalRequest = chain.request();
        //获取原始请求里的请求体数据
        FormBody formBody = (FormBody) originalRequest.body();
        for (int i = 0; i < formBody.size(); i++) {//先把原始的请求体的参数添加到builder里
            builder.add(formBody.name(i),formBody.value(i));
        }//添加公共参数
        builder.add("source","android");
        builder.add("appVersion","100");
        FormBody body = builder.build();

        //创建一个新的Request
        Request request = new Request.Builder().url(originalRequest.url()).post(body).build();

        Response response = chain.proceed(request);
        return response;
    }}

BeasContract==========================

package com.example.moni2.Modle.ui;

public interface BaseContract {interface BasePresenter<T extends BaseView> {void attchView(T view);

        void detachView();
    }interface BaseView {void showLoading();

        void dismissLoading();
    }}

HttpComponet=======================

package com.example.moni2.Modle.utils;

import com.example.moni2.Modle.Imodle.HttpModule;
import com.example.moni2.View.framgnet.DuanziFragment;

import dagger.Component;

@Component(modules = HttpModule.class)
public interface HttpComponent {void inject(DuanziFragment duanziFragment);

}

DuanziContract=====================

package com.example.moni2.Modle;

import com.example.moni2.Modle.bena.DuanziBean;
import com.example.moni2.Modle.ui.BaseContract;

import java.util.List;

public interface DuanziContract {interface View extends BaseContract.BaseView {void onSuccess(List<DuanziBean.DataBean> list);
    }interface Presenter extends BaseContract.BasePresenter<View> {void getDuanzi(String page);
    }}

DuanziBean=================================

package com.example.moni2.Modle.bena;

import java.util.List;

public class DuanziBean {/**
     * msg : 获取段子列表成功
     * code : 0
     * data : [{"commentNum":null,"content":"是王旭阳  二百五","createTime":"2018-05-14T19:10:04","imgUrls":null,"jid":2622,
     * "praiseNum":null,"shareNum":null,"uid":11196,"user":{"age":null,"fans":"null","follow":false,"icon":null,
     * "nickname":null,"praiseNum":"null"}},{"commentNum":null,"content":"王旭阳,怎么这么帅",
     * "createTime":"2018-05-14T15:40:31","imgUrls":null,"jid":2621,"praiseNum":null,"shareNum":null,"uid":11196,
     * "user":{"age":null,"fans":"null","follow":false,"icon":null,"nickname":null,"praiseNum":"null"}},
     * {"commentNum":null,"content":"我觉得王旭阳好帅啊","createTime":"2018-05-14T15:37:40","imgUrls":null,"jid":2620,
     * "praiseNum":null,"shareNum":null,"uid":11196,"user":{"age":null,"fans":"null","follow":false,"icon":null,
     * "nickname":null,"praiseNum":"null"}},{"commentNum":null,"content":"我是王旭阳,和我玩贪玩蓝月,是兄弟,就打王旭阳",
     * "createTime":"2018-05-14T15:34:51","imgUrls":null,"jid":2619,"praiseNum":null,"shareNum":null,"uid":11196,
     * "user":{"age":null,"fans":"null","follow":false,"icon":null,"nickname":null,"praiseNum":"null"}},
     * {"commentNum":null,"content":"\"fdfdsf\"","createTime":"2018-05-11T14:35:56","imgUrls":null,"jid":2618,
     * "praiseNum":null,"shareNum":null,"uid":12025,"user":{"age":null,"fans":"null","follow":false,"icon":null,
     * "nickname":"踩电门的猫","praiseNum":"null"}},{"commentNum":null,"content":"我是孙晶",
     * "createTime":"2018-05-11T10:50:29","imgUrls":"https://www.zhaoapi
     * .cn/images/quarter/1526007029403Screenshot_2018-03-19-13-23-00.png","jid":2617,"praiseNum":null,
     * "shareNum":null,"uid":12509,"user":{"age":null,"fans":"null","follow":false,"icon":"https://www.zhaoapi
     * .cn/images/1523839244885crop_photo.jpg","nickname":"%E5%BC%A0%E9%9C%B2","praiseNum":"null"}},
     * {"commentNum":null,"content":"我是孙晶","createTime":"2018-05-11T10:49:59","imgUrls":"https://www.zhaoapi
     * .cn/images/quarter/1526006999590Screenshot_2018-03-19-13-23-00.png","jid":2616,"praiseNum":null,
     * "shareNum":null,"uid":12509,"user":{"age":null,"fans":"null","follow":false,"icon":"https://www.zhaoapi
     * .cn/images/1523839244885crop_photo.jpg","nickname":"%E5%BC%A0%E9%9C%B2","praiseNum":"null"}},
     * {"commentNum":null,"content":"\"fdfdsf\"","createTime":"2018-05-11T10:44:10","imgUrls":null,"jid":2615,
     * "praiseNum":null,"shareNum":null,"uid":12025,"user":{"age":null,"fans":"null","follow":false,"icon":null,
     * "nickname":"踩电门的猫","praiseNum":"null"}},{"commentNum":null,"content":"\"fdfdsf\"",
     * "createTime":"2018-05-11T10:31:14","imgUrls":null,"jid":2614,"praiseNum":null,"shareNum":null,"uid":12025,
     * "user":{"age":null,"fans":"null","follow":false,"icon":null,"nickname":"踩电门的猫","praiseNum":"null"}},
     * {"commentNum":null,"content":"\"fdfdsf\"","createTime":"2018-05-11T09:33:42","imgUrls":null,"jid":2613,
     * "praiseNum":null,"shareNum":null,"uid":12025,"user":{"age":null,"fans":"null","follow":false,"icon":null,
     * "nickname":"踩电门的猫","praiseNum":"null"}}]
     */

    private String msg;
    private String code;
    private List<DataBean> data;

    public String getMsg() {return msg;
    }public void setMsg(String msg) {this.msg = msg;
    }public String getCode() {return code;
    }public void setCode(String code) {this.code = code;
    }public List<DataBean> getData() {return data;
    }public void setData(List<DataBean> data) {this.data = data;
    }public static class DataBean {/**
         * commentNum : null
         * content : 是王旭阳  二百五
         * createTime : 2018-05-14T19:10:04
         * imgUrls : null
         * jid : 2622
         * praiseNum : null
         * shareNum : null
         * uid : 11196
         * user : {"age":null,"fans":"null","follow":false,"icon":null,"nickname":null,"praiseNum":"null"}
         */

        private Object commentNum;
        private String content;
        private String createTime;
        private Object imgUrls;
        private int jid;
        private Object praiseNum;
        private Object shareNum;
        private int uid;
        private UserBean user;

        public Object getCommentNum() {return commentNum;
        }public void setCommentNum(Object commentNum) {this.commentNum = commentNum;
        }public String getContent() {return content;
        }public void setContent(String content) {this.content = content;
        }public String getCreateTime() {return createTime;
        }public void setCreateTime(String createTime) {this.createTime = createTime;
        }public Object getImgUrls() {return imgUrls;
        }public void setImgUrls(Object imgUrls) {this.imgUrls = imgUrls;
        }public int getJid() {return jid;
        }public void setJid(int jid) {this.jid = jid;
        }public Object getPraiseNum() {return praiseNum;
        }public void setPraiseNum(Object praiseNum) {this.praiseNum = praiseNum;
        }public Object getShareNum() {return shareNum;
        }public void setShareNum(Object shareNum) {this.shareNum = shareNum;
        }public int getUid() {return uid;
        }public void setUid(int uid) {this.uid = uid;
        }public UserBean getUser() {return user;
        }public void setUser(UserBean user) {this.user = user;
        }public static class UserBean {/**
             * age : null
             * fans : null
             * follow : false
             * icon : null
             * nickname : null
             * praiseNum : null
             */

            private Object age;
            private String fans;
            private boolean follow;
            private Object icon;
            private Object nickname;
            private String praiseNum;

            public Object getAge() {return age;
            }public void setAge(Object age) {this.age = age;
            }public String getFans() {return fans;
            }public void setFans(String fans) {this.fans = fans;
            }public boolean isFollow() {return follow;
            }public void setFollow(boolean follow) {this.follow = follow;
            }public Object getIcon() {return icon;
            }public void setIcon(Object icon) {this.icon = icon;
            }public Object getNickname() {return nickname;
            }public void setNickname(Object nickname) {this.nickname = nickname;
            }public String getPraiseNum() {return praiseNum;
            }public void setPraiseNum(String praiseNum) {this.praiseNum = praiseNum;
            }}}
}

MyDataBean===============================

package com.example.moni2.Modle.bena;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
@Entity
public class MyDataBean {@Id
    private Long id;
    @Property
    private String commentNum;
    @Property
    private String content;
    @Property
    private String createTime;
    @Property
    private String imgUrls;
    @Property
    private int jid;
    @Property
    private String praiseNum;
    @Property
    private String shareNum;
    @Property
    private int uid;
    @Property
    private String age;
    @Property
    private String fans;
    @Property
    private boolean follow;
    @Property
    private String icon;
    @Property
    private String nickname;
    @Generated(hash = 1891157934)public MyDataBean(Long id, String commentNum, String content, String createTime,
                      String imgUrls, int jid, String praiseNum, String shareNum, int uid,
                      String age, String fans, boolean follow, String icon, String nickname) {this.id = id;
        this.commentNum = commentNum;
        this.content = content;
        this.createTime = createTime;
        this.imgUrls = imgUrls;
        this.jid = jid;
        this.praiseNum = praiseNum;
        this.shareNum = shareNum;
        this.uid = uid;
        this.age = age;
        this.fans = fans;
        this.follow = follow;
        this.icon = icon;
        this.nickname = nickname;
    }@Generated(hash = 650128772)public MyDataBean() {}public Long getId() {return this.id;
    }public void setId(Long id) {this.id = id;
    }public String getCommentNum() {return this.commentNum;
    }public void setCommentNum(String commentNum) {this.commentNum = commentNum;
    }public String getContent() {return this.content;
    }public void setContent(String content) {this.content = content;
    }public String getCreateTime() {return this.createTime;
    }public void setCreateTime(String createTime) {this.createTime = createTime;
    }public String getImgUrls() {return this.imgUrls;
    }public void setImgUrls(String imgUrls) {this.imgUrls = imgUrls;
    }public int getJid() {return this.jid;
    }public void setJid(int jid) {this.jid = jid;
    }public String getPraiseNum() {return this.praiseNum;
    }public void setPraiseNum(String praiseNum) {this.praiseNum = praiseNum;
    }public String getShareNum() {return this.shareNum;
    }public void setShareNum(String shareNum) {this.shareNum = shareNum;
    }public int getUid() {return this.uid;
    }public void setUid(int uid) {this.uid = uid;
    }public String getAge() {return this.age;
    }public void setAge(String age) {this.age = age;
    }public String getFans() {return this.fans;
    }public void setFans(String fans) {this.fans = fans;
    }public boolean getFollow() {return this.follow;
    }public void setFollow(boolean follow) {this.follow = follow;
    }public String getIcon() {return this.icon;
    }public void setIcon(String icon) {this.icon = icon;
    }public String getNickname() {return this.nickname;
    }public void setNickname(String nickname) {this.nickname = nickname;
    }
}

一刻钟 简单段子实现相关推荐

  1. 简单粗暴的抓取糗百的段子——1

    首先我们用到的软件是工具是pycharm,py3.6版本,工具包是 requests 和 bs4,没下载的抓紧时间哈~~~ 接着看下效果图吧~ 空行没有消除,跟题目很相仿~~~简单粗暴,这里只说方法 ...

  2. 简单实用的笑话段子小程序详细搭建教程(附源码),包含了视频、图片、段子三个模块

    首先上个图,看下线上效果 扫码查看线上案例 线上服务器搭建这类的,这里就不多说了,有需要的可以看我之前的文章   >> 最新版短视频去水印小程序安装详细教程(附免费源码和去水印解析接口), ...

  3. 使用urllib2简单爬取并保存内涵吧内涵段子指定分页的的描述信息

    对 内涵8的内涵段子 爬取每个分页上面显示的描述信息,按回车键继续对下一页进行爬取,输入quit退出爬取. 思路: 1. 爬取每个页面的源码 2. 对源码进行处理(使用正则),获取指定信息 3. 保存 ...

  4. 内容营销,不仅仅是写段子、拍视频这么简单

    试想,我要向你推荐一款酷炫的跑鞋,以下哪种方式更吸引你的注意,让你产生购买冲动? 1.采用电视购物般排山倒海式的推销模式,每天给你介绍鞋子的精美外型.做工精良.材质一流.某某明星爱不释手,最后告诉你这 ...

  5. Python爬虫--抓取糗事百科段子

    今天使用python爬虫实现了自动抓取糗事百科的段子,因为糗事百科不需要登录,抓取比较简单.程序每按一次回车输出一条段子,代码参考了 http://cuiqingcai.com/990.html 但该 ...

  6. 【运营干货】段子手打死也不会告诉广告主的事:一篇新媒体文案如何才能引发用户分享?...

    前段时间,接触到一个涉及"用户在线分享"方面内容的项目,大家在前期的讨论中,经常会提及一些诸如"人为什么会在线分享"."什么样的人会在线分享" ...

  7. 从内涵段子到皮皮虾,娱乐App为何不能一鱼两吃?

    文|ihahe 来源 | 螳螂财经(ID:TanglangFin) 郭德纲在说到语言类节目困境的时候,用唱歌跟说相声做了个对比,他说歌星可以用一首歌挣一辈子的钱,笑星却不行.在相声里一个包袱只能丢一次 ...

  8. 双代号网络图基础算法_9个简单数学算法在管理领域的运用

    数学,一直被认为是一个很让人头疼的学科,好像除了专业人士外,其他人都会"谈之色变",网上有个段子道出了真相:"初二那年,我弯腰捡了一支笔,从此再没听懂过数学课" ...

  9. 爬虫实战:嗅事百科段子多页爬取

    假如我们想爬取糗事百科( http://ww qiushibaike.com/)上的段子,也可以编写对应的Python网络爬虫实现. 本项目糗事百科网络爬虫的实现思路及步骤如下: 分析各页间的网址规律 ...

最新文章

  1. 掘金 php,PHP基本语法
  2. 笔记 - Ali Cloud 块存储简介
  3. Bit-Z转入GXS、PPS、SPHTX、EOS未到账解决方案
  4. python代码该怎么简化_Python开发简化代码的六大技巧
  5. 细数近年来机器学习研究的几大怪现状
  6. android封装oauth2,Android AccountAuthenticator和OAuth2
  7. 比较ArrayList和数组的区别
  8. LeetCode 221. 最大正方形(DP)
  9. astype强制转换不管用_用numpy和pandas进行数据分析
  10. 包教会一对一跟着CNS学单细胞测序(含空间转录组、chipseq、RNAseq、Atacseq 和外显子等)3月13日开始...
  11. python好用的模块_python常用的内置模块和常用的第三方模块
  12. Linux(Ubuntu) 下自然码加辅助码双拼输入的解决方案
  13. ASP编程实现各家快递公司订单状态查询
  14. Axure软件页面介绍
  15. 计算机网络简单理解总结
  16. 记在创口贴上的超实用IDEA Eclipse快捷方式
  17. ICG-PEG-OH 结构式,吲哚菁绿-聚乙二醇-羟基的相关说明
  18. css实现自适应之单位vh
  19. python替换word中的图片_python如何提取word内的图片
  20. AB153x(检测洛达芯片) 专治华强北

热门文章

  1. Springboot和Angular的CSRF防御
  2. 基于akka的flink RPC调用
  3. AI(006) - 笔记 - 回顾线性回归(Linear Regression)
  4. 计算机软件优化和安全维护,PC Reviver(电脑优化维护工具)
  5. Access denied for user ‘‘@‘localhost‘ (using password: NO)(史上最坑爹的一次)
  6. 正点原子USMART使用
  7. cisco 认证 linux,誉天 Cisco Linux 认证社区.PDF
  8. 0ctf-2018 heapstorm2详解
  9. 数学建模-多属性决策
  10. KBPC610-ASEMI整流方桥6A 1000V