• day26


    购车能的功能完善

    <RelativeLayout 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:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <com.google.android.material.appbar.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@color/colorAccent"
                app:logo="@drawable/icon_shou"
                app:navigationContentDescription=""
                app:layout_scrollFlags="scroll|enterAlways"
                app:navigationIcon="@drawable/icon_back">
    
                <TextView
                    android:id="@+id/buy_detial_title3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:text="购物车"
                    android:textColor="@color/black"
                    android:textSize="25sp" />
            </androidx.appcompat.widget.Toolbar>
    
        </com.google.android.material.appbar.AppBarLayout>
        <androidx.core.widget.NestedScrollView
            android:layout_below="@+id/appbar"
            android:id="@+id/nestscrollcar"
            android:layout_height="match_parent"
            android:layout_width="match_parent">
            <RelativeLayout
                android:id="@+id/relatcar"
                android:layout_height="wrap_content"
                android:layout_width="match_parent">
                <androidx.recyclerview.widget.RecyclerView
                    android:id="@+id/recyccar"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="10dp" />
    
                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="60dp"
                    android:layout_below="@+id/recyccar"
                    android:layout_alignParentBottom="true"
                    android:paddingTop="10dp"
                    android:paddingBottom="10dp"
                    android:paddingLeft="5dp"
                    android:paddingRight="5dp"
                    android:background="#802f4f4f"
                    android:gravity="center_vertical"
                    >
    
                    <CheckBox
                        android:id="@+id/checkbox_all"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_centerVertical="true"
                        android:checked="true"
                        android:text="全选"
                        android:textSize="20sp"
                        style="@style/customCheckbox"/>
    
    
                    <TextView
                        android:id="@+id/txt_total"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_toRightOf="@+id/checkbox_all"
                        android:layout_marginLeft="28dp"
                        android:layout_centerVertical="true"
                        android:textSize="24dp"
                        android:text="合计"/>
    
                    <Button
                        android:id="@+id/btn_order"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:minHeight="60dp"
                        android:minWidth="120dp"
                        android:text="去结算"
                        style="@style/bigRedButton"/>
    
    
                    <Button
                        android:id="@+id/btn_del"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:visibility="gone"
                        android:minHeight="60dp"
                        android:minWidth="120dp"
                        android:text="删除"
                        style="@style/bigRedButton"/>
    
    
                </RelativeLayout>
            </RelativeLayout>
        </androidx.core.widget.NestedScrollView>
    
    </RelativeLayout>

    1、要实现每个物品的点击事件

    2、实现点击全选实现全部物品的checked和如果有物品没有被选中全选键不显示

    3、被选中物品价格的总计算

    package Home;
    
    import android.content.Context;
    import android.text.Html;
    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 android.widget.Toast;
    
    import androidx.annotation.NonNull;
    import androidx.recyclerview.widget.RecyclerView;
    
    import com.bumptech.glide.Glide;
    import com.example.expressdelivery.R;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    import Home.Data.Goods;
    import Home.Data.Image;
    import Home.Data.ShoppingCart;
    import Home.Data.Zuoye;
    import Home.utils.CartProvider;
    import Home.widget.NumberAddSubView;
    
    
    public class CarAdapter extends RecyclerView.Adapter<CarAdapter.CarViewHolder>{
        private Context mcontext;
        private List<Goods> goods;
        private List<Zuoye> Zuoyes;
        private List<ShoppingCart> carts=new ArrayList<>();
        private CheckBox checkBox;
        private TextView textView;
        private CartProvider cartProvider;
        public CarAdapter(Context context, List<ShoppingCart> carts, final CheckBox checkBox, TextView textView){
            this.mcontext=context;
            this.carts=carts;
            this.checkBox=checkBox;
            this.textView=textView;
            checkBox.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    checkAll_None(checkBox.isChecked());
                    showTotalPrice();
                }
            });
            cartProvider=new CartProvider(mcontext);
            showTotalPrice();
        }
    
        @NonNull
        @Override
        public CarViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            return new CarViewHolder(LayoutInflater.from(mcontext).inflate(R.layout.layout_car_item,parent,false));
        }
    
        @Override
        public void onBindViewHolder(@NonNull CarViewHolder holder, final int position) {
            final ShoppingCart cart=carts.get(position);
            Glide.with(mcontext)
                    .load(cart.getImgUrl())
                    .into(holder.imageView);
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    cart.setIsChecked(!cart.isChecked());
                    notifyItemChanged(position);
                    checkListen();
                    showTotalPrice();
                }
            });
            holder.textView1.setText(cart.getName());
            holder.textView2.setText("$"+String.valueOf(cart.getPrice()));
            holder.checkBox.setChecked(cart.isChecked());
            holder.numberAddSubView.setOnButtonClickListener(new NumberAddSubView.OnButtonClickListener() {
                @Override
                public void onButtonAddClick(View view, int value) {
                    cart.setCount(value);
                    Toast.makeText(mcontext,value+",快去看看吧!"+cart.getCount(),Toast.LENGTH_SHORT).show();
                    cartProvider.put(cart);
                    showTotalPrice();
                }
    
                @Override
                public void onButtonSubClick(View view, int value) {
                    cart.setCount(value);
                    cartProvider.put(cart);
                    showTotalPrice();
                }
            });
            holder.numberAddSubView.setValue(cart.getCount());
        }
    
    
        @Override
        public int getItemCount() {
    
                return carts.size();
    
    
    
        }
    
    
    
        class CarViewHolder extends RecyclerView.ViewHolder{
            private ImageView imageView;
            private TextView textView1;
            private TextView textView2;
    
            private CheckBox checkBox;
            private NumberAddSubView numberAddSubView;
            public CarViewHolder(@NonNull final View itemView) {
                super(itemView);
                imageView=itemView.findViewById(R.id.iv_pic);
                textView1=itemView.findViewById(R.id.text_title);
                textView2=(TextView)itemView.findViewById(R.id.text_price);
                checkBox=itemView.findViewById(R.id.checkbox);
                numberAddSubView=itemView.findViewById(R.id.num_control);
    
    
            }
        }
        public void showTotalPrice(){
    
            float total = getTotalPrice();
    
            textView.setText(Html.fromHtml("合计 ¥<span style='color:#eb4f38'>" + total + "</span>"), TextView.BufferType.SPANNABLE);
        }
    
        private  float getTotalPrice(){
    
            float sum=0;
            if(!isNull())
                return sum;
    
            for (ShoppingCart cart:
                    carts) {
                if(cart.isChecked())
                    sum += cart.getCount()*cart.getPrice();
            }
    
            return sum;
        }
    
        private boolean isNull(){
            return (carts !=null && carts.size()>0);
        }
    
        private void checkListen() {
            int count = 0;
            int checkNum = 0;
            if (carts != null) {
                count = carts.size();
    
                for (ShoppingCart cart : carts) {
                    if (!cart.isChecked()) {
                        checkBox.setChecked(false);
                        break;
                    } else {
                        checkNum = checkNum + 1;
                    }
                }
    
                if (count == checkNum) {
                    checkBox.setChecked(true);
                }
    
            }
        }
    
        public void checkAll_None(boolean isChecked)
        {
            if(!isNull())
                return ;
            int i=0;
            for (ShoppingCart cart :carts)
            {
                cart.setIsChecked(isChecked);
                notifyItemChanged(i);
                i++;
            }
        }
        public void delCart()
        {
            if(!isNull())
                return ;
            for(Iterator iterator = carts.iterator(); iterator.hasNext();)
            {
                ShoppingCart cart = (ShoppingCart) iterator.next();
                if(cart.isChecked())
                {
                    int position = carts.indexOf(cart);
                    cartProvider.delete(cart);
                    iterator.remove();
                    notifyItemRemoved(position);
                }
            }
        }
    
    }
  • 相关阅读:
    mybatis逆向工程
    fastdfs搭建和使用
    solr学习笔记
    自己搭建anki服务器
    redis总结
    java基础——队列
    遍历文件夹下的文件,并且获取文件名字
    xls到xml
    xls文件导入数据库
    PyCharm怎样添加Qt designer
  • 原文地址:https://www.cnblogs.com/chenaiiu/p/13584118.html
Copyright © 2020-2023  润新知