1.config.gradle 改包名 并且在工程的gradle 里 写上
apply from:'config.gradle'
ext {
android = [
compileSdkVersion: 26,
applicationId : "com.************",
minSdkVersion : 15,
targetSdkVersion : 26,
versionCode : 1,
versionName : "1.0"
]
dependencies = [
"appcompat-v7" : "com.android.support:appcompat-v7:26.1.0",
"constraint-layout": "com.android.support.constraint:constraint-layout:1.1.0",
"retrofit2" : "com.squareup.retrofit2:retrofit:2.4.0",
"converter-gson" : "com.squareup.retrofit2:converter-gson:2.4.0",
"adapter-rxjava" : "com.squareup.retrofit2:adapter-rxjava2:2.4.0",
"rxjava2" : "io.reactivex.rxjava2:rxjava:2.1.13",
"rxjava2:rxandroid": "io.reactivex.rxjava2:rxandroid:2.0.2",
"dagger" : "com.google.dagger:dagger:2.8",
"dagger-compiler" : "com.google.dagger:dagger-compiler:2.7"
]
}
2.创建 bean包 bean类
public class ProductsBean implements Serializable {
/**
* msg : 请求成功
* code : 0
* data : [{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":20,
* "price":599,"pscid":1,"salenum":10000,"sellerid":13,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼
* 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":8,"price":324,
* "pscid":1,"salenum":3000,"sellerid":1,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼
* 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:48:08","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":2,"pid":9,
* "price":78.99,"pscid":1,"salenum":2356,"sellerid":2,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼
* 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:48:08","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":2,"pid":22,
* "price":799,"pscid":1,"salenum":1300,"sellerid":15,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼
* 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":21,
* "price":699,"pscid":1,"salenum":1299,"sellerid":14,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼
* 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":7,
* "price":120.01,"pscid":1,"salenum":1266,"sellerid":23,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼
* 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":3,"price":198,
* "pscid":1,"salenum":1234,"sellerid":19,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼
* 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":19,
* "price":499,"pscid":1,"salenum":1111,"sellerid":12,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼
* 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":2,"price":299,
* "pscid":1,"salenum":999,"sellerid":18,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼
* 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd
* .com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term
* =QQfriends","images":"https://m.360buyimg
* .com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg
* .com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":17,
* "price":299,"pscid":1,"salenum":888,"sellerid":10,
* "subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}]
* page : 1
*/
private String msg;
private String code;
private String page;
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 String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean implements Serializable {
/**
* bargainPrice : 111.99
* createtime : 2017-10-14T21:39:05
* detailUrl : https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare
* &utm_campaign=t_335139774&utm_term=QQfriends
* images : https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg
* |https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https
* ://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg
* itemtype : 1
* pid : 20
* price : 599.0
* pscid : 1
* salenum : 10000
* sellerid : 13
* subhead : 每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下
* title : 北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g
*/
private double bargainPrice;
private String createtime;
private String detailUrl;
private String images;
private int itemtype;
private int pid;
private double price;
private int pscid;
private int salenum;
private int sellerid;
private String subhead;
private String title;
public double getBargainPrice() {
return bargainPrice;
}
public void setBargainPrice(double bargainPrice) {
this.bargainPrice = bargainPrice;
}
public String getCreatetime() {
return createtime;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
public String getDetailUrl() {
return detailUrl;
}
public void setDetailUrl(String detailUrl) {
this.detailUrl = detailUrl;
}
public String getImages() {
return images;
}
public void setImages(String images) {
this.images = images;
}
public int getItemtype() {
return itemtype;
}
public void setItemtype(int itemtype) {
this.itemtype = itemtype;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getPscid() {
return pscid;
}
public void setPscid(int pscid) {
this.pscid = pscid;
}
public int getSalenum() {
return salenum;
}
public void setSalenum(int salenum) {
this.salenum = salenum;
}
public int getSellerid() {
return sellerid;
}
3. 桥梁包 类
@Component (modules= HttpModule.class)
public interface HttpComponent {
void inject(ListActivity listActivity);
}
4.module 包 HttpModule
@Module
public class HttpModule {
@Provides
OkHttpClient.Builder provideOkHttpClientBuilder(){
return new OkHttpClient.Builder()
.writeTimeout(20, TimeUnit.SECONDS)
.readTimeout(20, TimeUnit.SECONDS)
.connectTimeout(10, TimeUnit.SECONDS);
}
@Provides
ListApi provideListApi(OkHttpClient.Builder builder) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Api.BASEURL)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.client(builder.build())
.build();
ListApiService listApiService = retrofit.create(ListApiService.class);
return ListApi.getListApi(listApiService);
}
}
5.inter包 IBase类
public interface IBase {
int getContentLayout();
void inject();
void initView(View view);
}
onItemClickListener
public interface OnItemClickListener {
void onItemClick(int position);
void onLongItemClick(int position);
}
6.写 Api 和 ApiService
Api
public interface Api {
String BASEURL="https://www.zhaoapi.cn/";
}
ApiService
public interface ListApiService {
@FormUrlEncoded
@POST("product/getProducts")
Observable<ProductsBean> getProduct(@Field("pscid") String pscid);
}
ListApi
public class ListApi {
private static ListApi listApi;
private ListApiService listApiService;
private ListApi(ListApiService listApiService) {
this.listApiService = listApiService;
}
public static ListApi getListApi(ListApiService listApiService) {
if (listApi == null) {
listApi = new ListApi(listApiService);
}
return listApi;
}
public Observable<ProductsBean> getProduct(String pscid) {
return listApiService.getProduct(pscid);
}
}
8.utils的ImageLoaderUtils
public class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
/**
注意:
1.图片加载器由自己选择,这里不限制,只是提供几种使用方法
2.返回的图片路径为Object类型,由于不能确定你到底使用的那种图片加载器,
传输的到的是什么格式,那么这种就使用Object接收和返回,你只需要强转成你传输的类型就行,
切记不要胡乱强转!
*/
//用fresco加载图片简单用法,记得要写下面的createImageView方法
Uri uri = Uri.parse((String) path);
imageView.setImageURI(uri);
}
//提供createImageView 方法,如果不用可以不重写这个方法,主要是方便自定义ImageView的创建
@Override
public ImageView createImageView(Context context) {
//使用fresco,需要创建它提供的ImageView,当然你也可以用自己自定义的具有图片加载功能的ImageView
SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context);
return simpleDraweeView;
}
}
9.ui包 ---->base包 4个类
BasePresenter
public class BasePresenter<T extends BaseContract.BaseView> implements BaseContract.BasePresenter<T> {
protected T mView;
@Override
public void attachView(T view) {
this.mView=view;
}
@Override
public void detachView() {
if (mView != null) {
mView = null;
}
}
}
然后 basecontract
public interface BaseContract {
interface BasePresenter<T extends BaseView>{
void attachView(T view);
void detachView();
}
interface BaseView{
void showLoading();
void dismissLoading();
}
}
baseActivity
public abstract class BaseActivity<T extends BaseContract.BasePresenter> extends AppCompatActivity implements IBase,BaseContract.BaseView{
@Inject
protected T mPresenter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getContentLayout());
inject();
//绑定
mPresenter.attachView(this);
}
@Override
public void initView(View view) {
}
@Override
protected void onDestroy() {
super.onDestroy();
//解绑
mPresenter.detachView();
}
@Override
public void showLoading() {
}
@Override
public void dismissLoading() {
}
}
baseFragment
public abstract class BaseFragment<T extends BaseContract.BasePresenter> extends Fragment implements IBase,BaseContract.BaseView{
@Inject
protected T mPresenter;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
inject();
mPresenter.attachView(this);
}
@Override
public void onDestroy() {
super.onDestroy();
mPresenter.detachView();
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle
savedInstanceState) {
View view = inflater.inflate(getContentLayout(), null);
initView(view);
return view;
}
@Override
public void showLoading() {
}
@Override
public void dismissLoading() {
}
}
ui下的包 具体实现 ListContract
interface View extends BaseContract.BaseView {
void onSuccess(List<DuanziBean.DataBean> list);
}
interface Presenter extends BaseContract.BasePresenter<View> {
void getDuanzi(String page);
}
listPresenter
public class JokesPresenter extends BasePresenter<JokesContract.View> implements
JokesContract.Presenter {
JokesApi jokesApi;
@Inject
public JokesPresenter(JokesApi jokesApi) {
this.jokesApi = jokesApi;
}
@Override
public void getJokes(String page) {
jokesApi.getJokes(page)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Observer<JokesBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(JokesBean jokesBean) {
mView.getJokesSuccess(jokesBean);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
}
ui------list包
xrvListViewAdapter
public class XrvListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private List<ProductsBean.DataBean> list;
private LayoutInflater inflater;
private OnListItemClickListener onListItemClickListener;
public interface OnListItemClickListener {
void OnItemClick(ProductsBean.DataBean dataBean);
}
public XrvListAdapter(Context context, List<ProductsBean.DataBean> list) {
this.context = context;
this.list = list;
inflater = LayoutInflater.from(context);
}
public void setOnListItemClickListener(OnListItemClickListener onListItemClickListener) {
this.onListItemClickListener = onListItemClickListener;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.rvlist_item, parent, false);
XlvViewHolder xlvViewHolder = new XlvViewHolder(view);
return xlvViewHolder;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
XlvViewHolder xlvViewHolder = (XlvViewHolder) holder;
final ProductsBean.DataBean dataBean = list.get(position);
String imgUrl = dataBean.getImages().split("\\|")[0];
// Glide.with(context).load(imgUrl).into(xlvViewHolder.iv);
xlvViewHolder.iv.setImageURI(imgUrl);
xlvViewHolder.tvTitle.setText(dataBean.getTitle());
xlvViewHolder.tvPrice.setText("¥" + dataBean.getBargainPrice() + "");
//设置条目监听
xlvViewHolder.ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onListItemClickListener != null) {
onListItemClickListener.OnItemClick(dataBean);
}
}
});
}
@Override
public int getItemCount() {
return list.size();
}
class XlvViewHolder extends RecyclerView.ViewHolder {
private final LinearLayout ll;
private final SimpleDraweeView iv;
private final TextView tvTitle;
private final TextView tvPrice;
public XlvViewHolder(View itemView) {
super(itemView);
ll = itemView.findViewById(R.id.ll);
iv = itemView.findViewById(R.id.iv);
tvTitle = itemView.findViewById(R.id.tvTitle);
tvPrice = itemView.findViewById(R.id.tvPrice);
}
}
/**
* 刷新
*
* @param templist
*/
public void refresh(List<ProductsBean.DataBean> templist) {
this.list.clear();
this.list.addAll(templist);
notifyDataSetChanged();
}
/**
* 加载更多
*
* @param list
*/
public void loadMore(List<ProductsBean.DataBean> list) {
this.list.addAll(list);
notifyDataSetChanged();
}
}
ListActivity
public class ListActivity extends BaseActivity <ListPresenter> implements ListContract.View{
private XRecyclerView mXrv;
private int pscid;
private boolean isRefresh = true;
private XrvListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//获取pscid
Intent intent = getIntent();
pscid = intent.getIntExtra("pscid", 0);
initView();
mPresenter.getProducts(pscid + "");
}
private void initView() {
mXrv = (XRecyclerView) findViewById(R.id.xrv);
//设置布局管理器
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
mXrv.setLayoutManager(linearLayoutManager);
//设置刷新和加载更多监听
mXrv.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
//刷新
isRefresh = true;
mPresenter.getProducts(pscid + "");
}
@Override
public void onLoadMore() {
//加载更多
isRefresh = false;
mPresenter.getProducts(pscid + "");
}
});
}
@Override
public int getContentLayout() {
return R.layout.activity_list;
}
@Override
public void inject() {
DaggerHttpComponent.builder()
.httpModule(new HttpModule())
.build()
.inject(this);
}
@Override
public void onSuccess(List<ProductsBean.DataBean> list) {
final List<ProductsBean.DataBean> tempList = new ArrayList<>();
tempList.addAll(list);
//创建适配器
if (isRefresh) {
adapter = new XrvListAdapter(this, list);
mXrv.setAdapter(adapter);
adapter.refresh(tempList);
mXrv.refreshComplete();//设置刷新完成
} else {
if (adapter != null) {
//判断适配器是否创建过
adapter.loadMore(tempList);
mXrv.loadMoreComplete();//设置加载更多完成
}
}
if (adapter == null) {
return;
}
adapter.setOnListItemClickListener(new XrvListAdapter.OnListItemClickListener() {
@Override
public void OnItemClick(ProductsBean.DataBean dataBean) {
Intent intent = new Intent(ListActivity.this, ListDetailsActivity.class);
intent.putExtra("bean", dataBean);
startActivity(intent);
}
});
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
tools:context=".ui.classify.ListActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#ff3660"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/ivZxing"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="15dp"
android:background="@drawable/a_s"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_weight="1"
android:background="@drawable/shape_search"></LinearLayout>
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:background="@drawable/my_msg_bai"/>
</LinearLayout>
<com.jcodecraeer.xrecyclerview.XRecyclerView
android:id="@+id/xrv"
android:layout_width="match_parent"
android:layout_height="match_parent"></com.jcodecraeer.xrecyclerview.XRecyclerView>
</LinearLayout>