这个是组合控件
public class Myview extends LinearLayout {
TextView jian , shu , jia;
private int num;
GetMyCALL getMyCALL;
public Myview(Context context) {
super(context);
}
public Myview(Context context,AttributeSet attrs) {
super(context, attrs);
View view = LayoutInflater.from(context).inflate(R.layout.activity_listview,this);
jian = view.findViewById(R.id.list_jian);
shu = view.findViewById(R.id.list_shu);
jia = view.findViewById(R.id.list_jia);
jia.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
num++;
shu.setText(num+"");
getMyCALL.setass(num);
}
});
jian.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
num--;
shu.setText(num+"");
getMyCALL.setass(num);
}
});
}
public Myview(Context context,AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setdata(int num) {
this.num = num;
shu.setText(num+"");
}
public interface GetMyCALL{
public void setass(int nuss);
}
public void setGetMyCALL(GetMyCALL call){
getMyCALL = call;
}
}
fragment
public class Show_Fragment extends Fragment implements CounetFace.ViewShowInterFace {
CounetFace.PresenterFace presenterFace;
CheckBox qx;
RecyclerView recyclerView;
TextView zong;
public List<NewsBean.DataBean> n_list = new ArrayList<>();
MyAdapter adapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.show_fragment, container, false);
qx = view.findViewById(R.id.show_qx);
recyclerView = view.findViewById(R.id.show_RecyclerView);
zong = view.findViewById(R.id.show_zong);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
presenterFace = new MyPresnter<>(this);
presenterFace.PshowFace();
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
//设置适配器
adapter = new MyAdapter(n_list, getActivity(), this);
recyclerView.setAdapter(adapter);
//全选和反选
qx.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int sum = 0;
boolean qxChecked = qx.isChecked();
if (qxChecked){
for (int i = 0; i <n_list.size() ; i++) {
n_list.get(i).IsSelect = qxChecked;
for (int j = 0; j <n_list.get(i).getList().size() ; j++) {
n_list.get(i).getList().get(j).ItemIsSelect = qxChecked;
//计算总价
sum += n_list.get(i).getList().get(j).getPrice()*
n_list.get(i).getList().get(j).getNum();
}
}
}else{
//计算总价
sum = 0;
for (int i = 0; i <n_list.size() ; i++) {
n_list.get(i).IsSelect = qxChecked;
for (int j = 0; j <n_list.get(i).getList().size() ; j++) {
n_list.get(i).getList().get(j).ItemIsSelect = qxChecked;
}
}
}
//计算总价
zong.setText(sum+"");
adapter.notifyDataSetChanged();
}
});
//回调接口1层
adapter.setMyCallBackFace(new MyAdapter.MyCallBackFace() {
@Override
public void setmycall(List<NewsBean.DataBean> list) {
int sum = 0;
int sssum = 0;
for (int i = 0; i <list.size() ; i++) {
boolean isSelect = list.get(i).IsSelect;
if (isSelect){
sssum++;
for (int j = 0; j <list.get(i).getList().size() ; j++) {
//计算总价
sum += list.get(i).getList().get(j).getPrice()*
list.get(i).getList().get(j).getNum();
}
}else{
for (int j = 0; j <list.get(i).getList().size() ; j++) {
if (list.get(i).getList().get(j).ItemIsSelect){
sum += list.get(i).getList().get(j).getPrice()*
list.get(i).getList().get(j).getNum();
}
}
}
}
if (sssum == list.size()){
qx.setChecked(true);
}else{
qx.setChecked(false);
}
//计算总价
zong.setText(sum+"");
adapter.notifyDataSetChanged();
}
});
}
// adapter1
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.holder> {
List<NewsBean.DataBean> n_list;
Context context;
Show_Fragment show_fragment;
private MyCallBackFace face;
public MyAdapter(List<NewsBean.DataBean> n_list, Context context, Show_Fragment show_fragment) {
this.n_list = n_list;
this.context = context;
this.show_fragment = show_fragment;
}
@NonNull
@Override
public holder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.activity_myadapter,null);
return new holder(view);
}
@Override
public void onBindViewHolder(@NonNull final holder holder, final int i) {
holder.checkBox.setChecked(n_list.get(i).IsSelect);
holder.textView.setText(n_list.get(i).getSellerName());
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
holder.recyclerView.setLayoutManager(linearLayoutManager);
MyAdapter_Adapter2 adapter2 = new MyAdapter_Adapter2(n_list.get(i).getList(),context,show_fragment);
holder.recyclerView.setAdapter(adapter2);
holder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean b = holder.checkBox.isChecked();
n_list.get(i).IsSelect = b;
for (int j = 0; j <n_list.get(i).getList().size() ; j++) {
n_list.get(i).getList().get(j).ItemIsSelect = b;
}
face.setmycall(n_list);
}
});
adapter2.setMyCallBackFace(new MyAdapter_Adapter2.MyCallBackFace() {
@Override
public void setmycall(List<NewsBean.DataBean.ListBean>list) {
int s = 0;
for (int j = 0; j <list.size() ; j++) {
boolean itemIsSelect = list.get(j).ItemIsSelect;
if (itemIsSelect){
s++;
}
}
if (s == list.size()){
holder.checkBox.setChecked(true);
n_list.get(i).IsSelect = true;
}else{
holder.checkBox.setChecked(false);
n_list.get(i).IsSelect = false;
}
face.setmycall(n_list);
}
});
}
@Override
public int getItemCount() {
return n_list.size();
}
public class holder extends RecyclerView.ViewHolder{
CheckBox checkBox;
TextView textView;
RecyclerView recyclerView;
public holder(@NonNull View itemView) {
super(itemView);
checkBox = itemView.findViewById(R.id.adapter1_CheckBox);
textView = itemView.findViewById(R.id.adapter1_TextView);
recyclerView = itemView.findViewById(R.id.adapter1_RecyclerView);
}
}
public void setMyCallBackFace(MyCallBackFace face){
this.face = face;
}
//创建一个接口
public interface MyCallBackFace{
public void setmycall( List<NewsBean.DataBean> n_list);
}
}
//adapter2
public class MyAdapter_Adapter2 extends RecyclerView.Adapter<MyAdapter_Adapter2.holer> {
List<NewsBean.DataBean.ListBean> n_list;
Context context;
Show_Fragment show_fragment;
private MyCallBackFace face;
public MyAdapter_Adapter2(List<NewsBean.DataBean.ListBean> n_list, Context context, Show_Fragment show_fragment) {
this.n_list = n_list;
this.context = context;
this.show_fragment = show_fragment;
}
@NonNull
@Override
public holer onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.activity_adapter2,null);
return new holer(view);
}
@Override
public void onBindViewHolder(@NonNull final holer holer, final int i) {
holer.checkBox.setChecked(n_list.get(i).ItemIsSelect);
holer.price.setText(n_list.get(i).getPrice()+"");
holer.textView.setText(n_list.get(i).getTitle());
Glide.with(context).load(n_list.get(i).getImages()).into(holer.imageView);
holer.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean checked = holer.checkBox.isChecked();
n_list.get(i).ItemIsSelect = checked;
face.setmycall(n_list);
}
});
holer.myview.setdata(n_list.get(i).getNum());
holer.myview.setGetMyCALL(new Myview.GetMyCALL() {
@Override
public void setass(int nuss) {
n_list.get(i).setNum(nuss);
face.setmycall(n_list);
}
});
}
@Override
public int getItemCount() {
return n_list.size();
}
public class holer extends RecyclerView.ViewHolder{
CheckBox checkBox;
TextView textView , price;
ImageView imageView;
Myview myview;
public holer(@NonNull View itemView) {
super(itemView);
//查找控件
checkBox = itemView.findViewById(R.id.adapter2_checkbox);
textView = itemView.findViewById(R.id.adapter2_text);
price = itemView.findViewById(R.id.adapter2_price);
imageView = itemView.findViewById(R.id.adapter2_ImageView);
myview = itemView.findViewById(R.id.adapter1_Myview);
}
}
public void setMyCallBackFace(MyCallBackFace face){
this.face = face;
}
//创建一个接口
public interface MyCallBackFace{
public void setmycall(List<NewsBean.DataBean.ListBean> n_list);
}
}