//详情
public static final String XQURL="product/getProductDetail";
@GET(Api.XQURL)
Flowable<XqBean> xqbean(@Query("pid") String pid ,@Query("resource") String resource);
model
public class XqModel implements IXqModel {
@Override
public void getXq(String pid, final OnNetListener<XqBean> onNetListener) {
ServerApi serverApi = RetrofitHelper.getServerApi();
Flowable<XqBean> xqbean = serverApi.xqbean(pid,"android");
xqbean.doOnSubscribe(new Consumer<Subscription>() {
@Override
public void accept(Subscription subscription) throws Exception {
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<XqBean>() {
@Override
public void accept(XqBean xqBean) throws Exception {
onNetListener.onSuccess(xqBean);
}
});
}
}
p层
public class IXqPresenter {
private IXqModel iXqModel;
private IXqActivity iXqActivity;
public IXqPresenter(IXqActivity iXqActivity) {
this.iXqActivity = iXqActivity;
iXqModel = new XqModel();
}
public void getxq(String pid){
iXqModel.getXq(pid, new OnNetListener<XqBean>() {
@Override
public void onSuccess(XqBean xqBean) {
iXqActivity.onxq(xqBean);
}
@Override
public void onFailure(Exception e) {
}
});
}
}
列表适配器
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private List<ShowBean.TuijianBean.ListBean> list;
private LayoutInflater inflater;
private OnItemClickListener onItemClickListener;
//跳转到详情页的操作
public interface OnItemClickListener{
void onItem(String str);
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener){
this.onItemClickListener = onItemClickListener;
}
public MyAdapter(Context context, List<ShowBean.TuijianBean.ListBean> list) {
this.context = context;
this.list = list;
inflater = LayoutInflater.from(context);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View inflate = inflater.inflate(R.layout.item1, parent, false);
return new MyViewHolder(inflate);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
MyViewHolder myViewHolder = (MyViewHolder) holder;
final ShowBean.TuijianBean.ListBean listBean = list.get(position);
myViewHolder.sim.setImageURI(listBean.getImages());
myViewHolder.tv1.setText(listBean.getTitle());
//跳转到详情页
myViewHolder.liner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int pid = listBean.getPid();
onItemClickListener.onItem(pid+"");
}
});
}
@Override
public int getItemCount() {
if (list == null){
return 0;
}
return list.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
public SimpleDraweeView sim;
public TextView tv1;
private final LinearLayout liner;
public MyViewHolder(View itemView) {
super(itemView);
liner = itemView.findViewById(R.id.liner);
sim = itemView.findViewById(R.id.sim);
tv1 = itemView.findViewById(R.id.tv1);
}
}
}
列表主类
适配器点击事件
adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
@Override
public void onItem(String str) {
Intent intent = new Intent(MainActivity.this, XqActivity.class);
intent.putExtra("pid",str);
startActivity(intent);
}
});
详情主类
接收传过来的id
Intent intent = getIntent();
String pid = intent.getStringExtra("pid");
Toast.makeText(this, pid, Toast.LENGTH_SHORT).show();
IXqPresenter iXqPresenter = new IXqPresenter(this);
iXqPresenter.getxq(pid);
@Override
public void onxq(XqBean xqBean) {
XqBean.DataBean data = xqBean.getData();
String images = data.getImages();
String[] split = images.split("\\|");
mXqSim.setImageURI(split[0]);
mXqTv.setText(data.getTitle());
mXqPrice.setText("$"+data.getPrice()+"");
}