适配器
第一个页面的适配器MyAdapter
package com.example.a1.app3.apapter;
import android.content.Context;
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.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.example.a1.app3.R;
import com.example.a1.app3.entity.AddShop;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.entity.UserShow;
import java.nio.FloatBuffer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context context;
private List<User.DataBean> list;
public MyAdapter(Context context) {
this.context = context;
this.list=new ArrayList<>();
}
public void setList(List<User.DataBean> list) {
if (list!=null){
this.list = list;
}
notifyDataSetChanged();
}
@NonNull
@Override
public MyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=LayoutInflater.from(context).inflate(R.layout.linear,viewGroup,false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyAdapter.ViewHolder viewHolder, final int position) {
User.DataBean dataBean = list.get(position);
viewHolder.name.setText(list.get(position).getSubhead());
viewHolder.price.setText(list.get(position).getPrice()+"");
String[] images = dataBean.getImages().split("\\|");
Glide.with(context).load(images[0]).into(viewHolder.image);
viewHolder.btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getpidcllback.getpid(list.get(position).getPid());
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView name,price;
private ImageView image;
private Button btn;
public ViewHolder(@NonNull View itemView) {
super(itemView);
image=itemView.findViewById(R.id.image);
name=itemView.findViewById(R.id.name);
price=itemView.findViewById(R.id.price);
btn = itemView.findViewById(R.id.btn);
}
}
private getpidCllback getpidcllback;
public void setGetpidcllback(getpidCllback getpidcllback) {
this.getpidcllback = getpidcllback;
}
public interface getpidCllback{
void getpid(int pid);
}
}
二级列表
CartAdapter 适配器
package com.example.a1.app3.apapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.TextView;
import com.example.a1.app3.R;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.entity.UserShow;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.ArrayList;
import java.util.List;
public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
private Context context;
private List<UserShow.DataBase> list1;
public CartAdapter(Context context) {
this.context = context;
this.list1=new ArrayList<>();
}
public void setList1(List<UserShow.DataBase> list1) {
if (list1!=null){
this.list1 = list1;
}
notifyDataSetChanged();
}
@NonNull
@Override
public CartAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=LayoutInflater.from(context).inflate(R.layout.cartshow,viewGroup,false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull CartAdapter.ViewHolder viewHolder, int position) {
UserShow.DataBase dataBase = list1.get(position);
viewHolder.name.setText(list1.get(position).sellerName);
viewHolder.xr.setLayoutManager(new LinearLayoutManager(context));
viewHolder.xr.setAdapter(new ProductAdapter(context,list1.get(position).list));
viewHolder.checkbox.setChecked(list1.get(position).checkbox);
if (dataBase.checkbox){
viewHolder.checkbox.setChecked(true);
}else{
viewHolder.checkbox.setChecked(false);
}
}
@Override
public int getItemCount() {
return list1.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView name,xiao;
private XRecyclerView xr;
private CheckBox checkbox;
public ViewHolder(@NonNull View itemView) {
super(itemView);
this.name=itemView.findViewById(R.id.name);
this.xiao=itemView.findViewById(R.id.xiao);
this.xr=itemView.findViewById(R.id.xr);
this.checkbox=itemView.findViewById(R.id.checkbox);
}
}
}
//ProductAdapter适配器
package com.example.a1.app3.apapter;
import android.content.Context;
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.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.a1.app3.R;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.entity.UserShow;
import com.example.a1.app3.view.RightView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.ArrayList;
import java.util.List;
public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHolder> {
private Context context;
private List<UserShow.DataBase.Product> list;
public ProductAdapter(Context context, List<UserShow.DataBase.Product> list) {
this.context = context;
this.list= list;
}
@NonNull
@Override
public ProductAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=LayoutInflater.from(context).inflate(R.layout.prodductshow,viewGroup,false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull ProductAdapter.ViewHolder viewHolder, int i) {
UserShow.DataBase.Product product = list.get(i);
String[] split = list.get(i).images.split("!");
Glide.with(context).load(split[0]).into(viewHolder.img);
viewHolder.title.setText(list.get(i).title);
viewHolder.price.setText(list.get(i).price+"");
viewHolder.checkbox.setChecked(product.isproductcheckbox);
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView title,price;
private ImageView img;
private CheckBox checkbox;
private RightView rightView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
this.checkbox=itemView.findViewById(R.id.checkbox);
this.img=itemView.findViewById(R.id.img);
this.title=itemView.findViewById(R.id.title);
this.price=itemView.findViewById(R.id.price);
}
}
}
Api接口
package com.example.a1.app3.Api;
public class UserApi {
public final static String USER_API=“http://www.zhaoapi.cn/product/searchProducts”;
//查询购物车
public final static String CART_API=“http://www.zhaoapi.cn/product/getCarts”;
//添加购物车
public static final String USER_ADDSHOP="http://www.zhaoapi.cn/product/addCart";
}
契约类LoadContract
package com.example.a1.app3.contract;
import com.example.a1.app3.net.RequestCallback;
import java.util.HashMap;
import java.util.Map;
public interface LoadContact {
//presenter
public abstract class LloadPresenter{
public abstract void preesenter(HashMap<String,String> map);
public abstract void showpresenter(HashMap<String,String> map);
public abstract void addshop(HashMap<String,String>params);
}
//model层
interface LloadModel{
void model(HashMap<String,String> map, RequestCallback callback);
void show(HashMap<String,String> map, RequestCallback callback);
void addshop(HashMap<String,String>map, RequestCallback callback);
}
//view层
interface LloadView{
void onSuccess(String result);
void onFailUre(String msg);
void onSuccessAddShop(String result);
}
}
bean类
//二级类表UserShow
public String msg;
public String code;
public List data;
public class DataBase{
public String sellerName;
public String sellerid;
public boolean checkbox;
public List list;
public class Product{
public boolean isproductcheckbox;
public int productNum=1;
public String title;
public String images;
public double price;
public String pid;
}
}
添加
private String msg;
private String code;
//fragment切换
第一个
package com.example.a1.app3.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.a1.app3.R;
import com.example.a1.app3.apapter.MyAdapter;
import com.example.a1.app3.contract.LoadContact;
import com.example.a1.app3.entity.AddShop;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.presenter.LoadPresenter;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.HashMap;
public class FragmentOne extends Fragment implements LoadContact.LloadView {
private EditText edit;
private Button but;
private XRecyclerView xrec;
private LoadPresenter presenter;
private MyAdapter myAdapter;
private int page=1;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragmentyi, container, false);
edit = view.findViewById(R.id.edit);
but =view.findViewById(R.id.but);
xrec = view.findViewById(R.id.xrec);
xrec.setLayoutManager(new LinearLayoutManager(getActivity()));
presenter=new LoadPresenter(this);
myAdapter=new MyAdapter(getActivity());
myAdapter.setGetpidcllback(new MyAdapter.getpidCllback() {
@Override
public void getpid(int pid) {
HashMap<String,String> map= new HashMap<>();
map.put("uid","500");
map.put("pid",pid+"");
presenter.addshop(map);
}
});
but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
HashMap<String,String> map2 = new HashMap<>();
String aaa=edit.getText().toString();
map2.put("keywords",aaa);
map2.put("page",page+"");
presenter.preesenter(map2);
}
});
//刷新
xrec.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
page++;
HashMap<String,String> map1 = new HashMap<>();
map1.put("keywords","1");
map1.put("page",page+"");
presenter.preesenter(map1);
xrec.refreshComplete();
}
@Override
public void onLoadMore() {
}
});
xrec.setAdapter(myAdapter);
return view;
}
@Override
public void onSuccess(String result) {
User user = new Gson().fromJson(result, User.class);
Toast.makeText(getActivity(), user.getMsg(),Toast.LENGTH_SHORT).show();
myAdapter.setList(user.getData());
}
@Override
public void onFailUre(String msg) {
Toast.makeText(getActivity(),msg,Toast.LENGTH_SHORT).show();
}
@Override
public void onSuccessAddShop(String result) {
AddShop addShop = new Gson().fromJson(result, AddShop.class);
Toast.makeText(getActivity(),addShop.getMsg(),Toast.LENGTH_SHORT).show();
}
}
//第二个
package com.example.a1.app3.fragment;
import android.graphics.Paint;
import android.os.Bundle;
import android.preference.Preference;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import com.example.a1.app3.R;
import com.example.a1.app3.apapter.CartAdapter;
import com.example.a1.app3.apapter.MyAdapter;
import com.example.a1.app3.contract.LoadContact;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.entity.UserShow;
import com.example.a1.app3.net.CartUiCakkbak;
import com.example.a1.app3.presenter.LoadPresenter;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.HashMap;
import java.util.List;
public class FragmentTwo extends Fragment implements LoadContact.LloadView,CartUiCakkbak {
private TextView fan;
private XRecyclerView xr;
private CheckBox checkbox;
private TextView zong;
private Button jies;
private LoadPresenter loadPresenter;
private CartAdapter cartAdapter;
private List<UserShow.DataBase> car;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragmenter, container, false);
fan = view.findViewById(R.id.fan);
xr =view.findViewById(R.id.xr);
checkbox =view.findViewById(R.id.checkbox);
zong = view.findViewById(R.id.zong);
jies =view.findViewById(R.id.jies);
xr.setLayoutManager(new LinearLayoutManager(getActivity()));
xr.setPullRefreshEnabled(true);
xr.setLoadingMoreEnabled(false);
xr.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
reqData();
xr.refreshComplete();
}
@Override
public void onLoadMore() {
}
});
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
for (UserShow.DataBase cart:car){
cart.checkbox=true;
for (UserShow.DataBase.Product product:cart.list){
product.isproductcheckbox=true;
}
}
}else {
for (UserShow.DataBase cart : car) {
cart.checkbox = false;
for (UserShow.DataBase.Product product : cart.list) {
product.isproductcheckbox = false;
}
}
}
cartAdapter.notifyDataSetChanged();
getTotaPrice();
}
});
cartAdapter=new CartAdapter(getActivity());
xr.setAdapter(cartAdapter);
return view;
}
private void getTotaPrice() {
double toprice=0;
for (UserShow.DataBase dataBase:car){
for (UserShow.DataBase.Product product:dataBase.list){
if (product.isproductcheckbox){
toprice+=product.price;
}
}
}
checkbox.setText(toprice+"");
}
private void reqData() {
loadPresenter=new LoadPresenter(this);
HashMap<String,String> map = new HashMap<>();
map.put("uid","500");
loadPresenter.showpresenter(map);
}
@Override
public void onSuccess(String result) {
UserShow userShow = new Gson().fromJson(result, UserShow.class);
car=userShow.data;
cartAdapter.setList1(userShow.data);
}
@Override
public void onFailUre(String msg) {
}
@Override
public void onSuccessAddShop(String result) {
}
@Override
public void notifyCart() {
getTotaPrice();
}
}
LoadModel层
package com.example.a1.app3.model;
import android.os.Handler;
import com.example.a1.app3.Api.UserApi;
import com.example.a1.app3.contract.LoadContact;
import com.example.a1.app3.net.OkHttpCallback;
import com.example.a1.app3.net.OkHttpUtiles;
import com.example.a1.app3.net.RequestCallback;
import java.util.HashMap;
public class LoadModel implements LoadContact.LloadModel {
private Handler handler=new Handler();
@Override
public void model(HashMap<String, String> map, final RequestCallback callback) {
OkHttpUtiles.getmInsxcvczmn().doPost(UserApi.USER_API, map, new OkHttpCallback() {
@Override
public void onSuccess(final String result) {
if (callback!=null){
handler.post(new Runnable() {
@Override
public void run() {
callback.onSuccess(result);
}
});
}
}
@Override
public void onFailUre(final String msg) {
if (callback!=null){
handler.post(new Runnable() {
@Override
public void run() {
callback.onSuccess(msg);
}
});
}
}
});
}
@Override
public void show(HashMap<String, String> map, final RequestCallback callback) {
OkHttpUtiles.getmInsxcvczmn().doPost(UserApi.CART_API, map, new OkHttpCallback() {
@Override
public void onSuccess(final String result) {
if (callback!=null){
handler.post(new Runnable() {
@Override
public void run() {
callback.onSuccess(result);
}
});
}
}
@Override
public void onFailUre(final String msg) {
if (callback!=null){
handler.post(new Runnable() {
@Override
public void run() {
callback.onSuccess(msg);
}
});
}
}
});
}
@Override
public void addshop(HashMap<String, String> map, final RequestCallback callback) {
OkHttpUtiles.getmInsxcvczmn().doPost(UserApi.USER_ADDSHOP, map, new OkHttpCallback() {
@Override
public void onSuccess(final String result) {
if (callback!=null){
handler.post(new Runnable() {
@Override
public void run() {
callback.onSuccess(result);
}
});
}
}
@Override
public void onFailUre(final String msg) {
if (callback!=null){
handler.post(new Runnable() {
@Override
public void run() {
callback.onFailUre(msg);
}
});
}
}
});
}
}
//presenter层
package com.example.a1.app3.presenter;
import com.example.a1.app3.contract.LoadContact;
import com.example.a1.app3.model.LoadModel;
import com.example.a1.app3.net.RequestCallback;
import java.util.HashMap;
public class LoadPresenter extends LoadContact.LloadPresenter{
private LoadContact.LloadView lloadView;
private LoadModel loadModel;
public LoadPresenter(LoadContact.LloadView lloadView) {
this.lloadView = lloadView;
loadModel=new LoadModel();
}
@Override
public void preesenter(HashMap<String, String> map) {
if (loadModel!=null){
loadModel.model(map, new RequestCallback() {
@Override
public void onSuccess(String result) {
if (lloadView!=null){
lloadView.onSuccess(result);
}
}
@Override
public void onFailUre(String msg) {
if (lloadView!=null){
lloadView.onSuccess(msg);
}
}
});
}
}
@Override
public void showpresenter(HashMap<String, String> map) {
if (loadModel!=null){
loadModel.show(map, new RequestCallback() {
@Override
public void onSuccess(String result) {
if (lloadView!=null){
lloadView.onSuccess(result);
}
}
@Override
public void onFailUre(String msg) {
if (lloadView!=null){
lloadView.onSuccess(msg);
}
}
});
}
}
@Override
public void addshop(HashMap<String, String> map) {
if (loadModel!=null){
loadModel.addshop(map, new RequestCallback() {
@Override
public void onSuccess(String result) {
if (lloadView!=null){
lloadView.onSuccess(result);
}
}
@Override
public void onFailUre(String msg) {
if (lloadView!=null){
lloadView.onSuccess(msg);
}
}
});
}
}
}
RightView
package com.example.a1.app3.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.example.a1.app3.R;
public class RightView extends LinearLayout {
private TextView jia;
private EditText num;
private TextView jian;
private int nums=1;
public RightView(Context context) {
this(context,null);
}
public RightView(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public RightView(Context context,AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
inData(context);
}
private void inData(Context context) {
View view=LayoutInflater.from(context).inflate(R.layout.jia,this);
jia = view.findViewById(R.id.jia);
num = view.findViewById(R.id.num);
jian = view.findViewById(R.id.jian);
num.setText("1");
jia.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
nums++;
num.setText(nums+"");
}
});
jian.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (nums==0){
nums=1;
}
nums--;
num.setText(nums+"");
}
});
}
}
切换
package com.example.a1.app3;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.constraint.ConstraintLayout;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.widget.TextView;
import com.example.a1.app3.fragment.FragmentOne;
import com.example.a1.app3.fragment.FragmentThree;
import com.example.a1.app3.fragment.FragmentTwo;
public class Main2Activity extends AppCompatActivity {
private TextView mTextMessage;
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
pager.setCurrentItem(0);
return true;
case R.id.navigation_dashboard:
pager.setCurrentItem(1);
return true;
case R.id.navigation_notifications:
pager.setCurrentItem(2);
return true;
}
return false;
}
};
private ConstraintLayout container;
private ViewPager pager;
private BottomNavigationView navigation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
mTextMessage = (TextView) findViewById(R.id.message);
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
switch (i){
case 0:
return new FragmentOne();
case 1:
return new FragmentTwo();
case 2:
return new FragmentThree();
}
return null;
}
@Override
public int getCount() {
return 3;
}
});
}
private void initView() {
container = (ConstraintLayout) findViewById(R.id.container);
pager = (ViewPager) findViewById(R.id.pager);
navigation = (BottomNavigationView) findViewById(R.id.navigation);
}
}
\\\\