详情可见
https://github.com/YangJun1208/yuekaozonghe
展示页面的Activity
public class ThreeActivity extends AppCompatActivity implements IView {
private XRecyclerView recyclerView;
private IPersenterImpl iPersenter;
private int mPage;
private TitleAdapter adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.three_activity);
recyclerView=findViewById(R.id.recycle_three);
iPersenter=new IPersenterImpl(this);
final LinearLayoutManager manager = new LinearLayoutManager(this);
manager.setOrientation(OrientationHelper.VERTICAL);
recyclerView.setLayoutManager(manager);
adapter = new TitleAdapter(this);
recyclerView.setAdapter(adapter);
adapter.setOnClicksListener(new TitleAdapter.OnClicksListener() {
@Override
public void onSuccess(int i, int pid) {
loaData(pid);
}
});
adapter.setOnClickLongLisenter(new TitleAdapter.OnClickLongLisenter() {
@Override
public void onSuccess(int i, int pid) {
Intent intent = new Intent(ThreeActivity.this, FourActivity.class);
startActivity(intent);
}
});
recyclerView.setLoadingMoreEnabled(true);
recyclerView.setPullRefreshEnabled(true);
recyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
mPage=1;
loadData();
}
@Override
public void onLoadMore() {
mPage++;
loadData();
}
});
loadData();
}
private void loaData(int pid) {
Map<String,String> map=new HashMap<>();
map.put("pid",pid+"");
map.put("uid","23015");
iPersenter.getRequest(Apis.TYPE_JIARU,map,JiaRuBean.class);
}
private void loadData() {
Map<String,String> map=new HashMap<>();
map.put("keywords","手机");
map.put("page",mPage+"");
iPersenter.getRequest(Apis.TYPE_TITLE,map,TitleBean.class);
}
@Override
public void onSucces(Object data) {
if(data instanceof TitleBean){
TitleBean titleBean= (TitleBean) data;
if(mPage==1){
adapter.setDatas(titleBean.getData());
}else{
adapter.addDatas(titleBean.getData());
}
}else if(data instanceof JiaRuBean){
JiaRuBean jiaRuBean= (JiaRuBean) data;
Toast.makeText(this, jiaRuBean.getMsg()+"", Toast.LENGTH_SHORT).show();
}
recyclerView.loadMoreComplete();
recyclerView.refreshComplete();
}
展示页面的Adapter
public class TitleAdapter extends RecyclerView.Adapter<TitleAdapter.ViewHolder> {
private List<TitleBean.DataBean> data;
private Context context;
public TitleAdapter(Context context) {
this.context = context;
data=new ArrayList<>();
}
public void setDatas(List<TitleBean.DataBean> mData) {
//this.data = data;
data.clear();
data.addAll(mData);
notifyDataSetChanged();
}
public void addDatas(List<TitleBean.DataBean> mData) {
//this.data = data;
//data.clear();
data.addAll(mData);
notifyDataSetChanged();
}
@NonNull
@Override
public TitleAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=LayoutInflater.from(context).inflate(R.layout.title_item,viewGroup,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull TitleAdapter.ViewHolder viewHolder, final int i) {
viewHolder.text_title.setText(data.get(i).getTitle());
viewHolder.text_price.setText(data.get(i).getPrice()+"");
String s = data.get(i).getImages().split("\\|")[0].replace("https", "http");
Glide.with(context).load(s).into(viewHolder.imageView);
//点击加入购物车的按钮将pid回传给Activity
viewHolder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(onClicksListener!=null){
onClicksListener.onSuccess(i,data.get(i).getPid());
}
}
});
//点击跳转到购物车的页面
viewHolder.jiaru_item.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if(onClickLongLisenter!=null){
onClickLongLisenter.onSuccess(i,data.get(i).getPid());
}
return false;
}
});
}
@Override
public int getItemCount() {
return data.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private ImageView imageView;
private TextView text_title,text_price;
private ConstraintLayout jiaru_item;
private Button button;
public ViewHolder(@NonNull View itemView) {
super(itemView);
imageView=itemView.findViewById(R.id.three_image);
text_price=itemView.findViewById(R.id.three_price);
text_title=itemView.findViewById(R.id.three_title);
jiaru_item=itemView.findViewById(R.id.jiaru_item);
button=itemView.findViewById(R.id.button_three);
}
}
OnClicksListener onClicksListener;
OnClickLongLisenter onClickLongLisenter;
public void setOnClicksListener(OnClicksListener onClicksListener){
this.onClicksListener=onClicksListener;
}
public interface OnClicksListener {
void onSuccess(int i,int pid);
}
public void setOnClickLongLisenter(OnClickLongLisenter onClickLongLisenter){
this.onClickLongLisenter=onClickLongLisenter;
}
public interface OnClickLongLisenter {
void onSuccess(int i,int pid);
}
跳转到另一个Activity,进入之后复选框全选的状态
public class FourActivity extends AppCompatActivity implements IView,View.OnClickListener {
private RecyclerView recyclerView;
private CheckBox gouwuche_checkbox;
private TextView num_sum;
private TextView sum_price;
private ShopAdapter adapter;
private IPersenterImpl iPersenter;
private List<ZhanShiBean.DataBean> data1;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_four);
recyclerView=findViewById(R.id.gouwuche_recycle);
gouwuche_checkbox=findViewById(R.id.gouwuche_checkbox);
num_sum=findViewById(R.id.num_sum);
sum_price=findViewById(R.id.sum_price);
iPersenter=new IPersenterImpl(this);
gouwuche_checkbox.setOnClickListener(this);
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
adapter = new ShopAdapter(this);
recyclerView.setAdapter(adapter);
adapter.setOnClickListener(new ShopAdapter.OnsClickListener() {
@Override
public void CallBack(List<ZhanShiBean.DataBean> list) {
int num=0;
double price=0;
int numSum=0;
for (int i=0;i<list.size();i++) {
List<ZhanShiBean.DataBean.ListBean> listBeans = list.get(i).getList();
for (int a=0;a<listBeans.size();a++){
numSum+= listBeans.get(a).getNum();
if(listBeans.get(a).isCheck()){
num+=listBeans.get(a).getNum();
price+=listBeans.get(a).getPrice()*listBeans.get(a).getNum();
}
}
}
if(num<numSum){
gouwuche_checkbox.setChecked(false);
}else{
gouwuche_checkbox.setChecked(true);
}
sum_price.setText("总价为:"+price);
num_sum.setText("数量为:"+num);
}
});
loadData();
}
private void loadData() {
Map<String,String> map=new HashMap<>();
map.put("uid","23015");
iPersenter.getRequest(Apis.TYPE_ZHAN,map,ZhanShiBean.class);
}
@Override
public void onSucces(Object data) {
if(data instanceof ZhanShiBean){
ZhanShiBean zhanShiBean= (ZhanShiBean) data;
data1 = zhanShiBean.getData();
if(data1 !=null){
adapter.setDatas(zhanShiBean.getData());
}
sellSum(true);
gouwuche_checkbox.setChecked(true);
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.gouwuche_checkbox:
sellSum(gouwuche_checkbox.isChecked());
adapter.notifyDataSetChanged();
break;
default:
break;
}
}
private void sellSum(boolean checked) {
int price=0;
int num=0;
for (int a=0;a<data1.size();a++){
ZhanShiBean.DataBean bean = data1.get(a);
bean.setIscheck(checked);
List<ZhanShiBean.DataBean.ListBean> list = data1.get(a).getList();
for (int i=0;i<list.size();i++){
list.get(i).setCheck(checked);
num+=list.get(i).getNum();
price+=list.get(i).getPrice()*list.get(i).getNum();
}
}
if(checked){
sum_price.setText("总价为:"+price);
num_sum.setText("数量为:"+num);
}else{
sum_price.setText("总价为:"+0.0);
num_sum.setText("数量为:"+0);
}
}