如何使用单击增加和减少按钮为每个项目设置值,以及如何在文本视图中设置该值

时间:2018-10-17 11:55:07

标签: android android-recyclerview recycler-adapter

这是我的适配器。我有+ button用于增加项目,-button用于减少项目。单击+按钮在textview中添加数字,然后单击-button在textview中减少数字。 textview中的数字表示项目数。谢谢。

enter image description here

card_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginTop="8dp"
    app:cardCornerRadius="8dp"
    app:cardElevation="4dp"
    card_view:cardCornerRadius="8dp"
    card_view:cardElevation="1dp">


    <LinearLayout
        android:id="@+id/item_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?android:attr/selectableItemBackground"
        android:clickable="true"
        android:focusable="true"
        android:orientation="horizontal">


        <ImageView
            android:id="@+id/imageViewProduct"
            android:layout_width="105dp"
            android:layout_height="100dp"
            android:src="@drawable/new_picture" />


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="99.3dp"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:orientation="vertical">

            <TextView
                android:id="@+id/txtName"
                android:layout_width="wrap_content"
                android:layout_height="25dp"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:layout_marginStart="5dp"
                android:layout_marginTop="5dp"
                android:text="Product Name"
                android:textColor="@color/colorGrey"
                android:textSize="14dp" />


            <TextView
                android:id="@+id/txtSize"
                android:layout_width="wrap_content"
                android:layout_height="25dp"
                android:layout_alignStart="@+id/txtName"
                android:layout_below="@+id/txtName"
                android:text="Size"
                android:textColor="@color/colorGrey"
                android:textSize="13dp" />

            <TextView
                android:id="@+id/txtPrice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignStart="@+id/txtName"
                android:layout_below="@+id/txtSize"
                android:text="price"
                android:textColor="@color/colorGrey"
                android:textSize="13dp" />

            <ImageButton
                android:id="@+id/imageButton"
                android:layout_width="44dp"
                android:layout_height="44dp"
                android:layout_alignParentEnd="true"
                android:layout_alignParentTop="true"
                android:layout_marginEnd="2dp"
                android:layout_marginTop="2dp"
                android:background="@drawable/round_button"
                app:srcCompat="@drawable/ic_action_name" />


            <ImageButton
                android:id="@+id/imageButton2"
                android:layout_width="44dp"
                android:layout_height="44dp"
                android:layout_alignParentBottom="true"
                android:layout_alignParentEnd="true"
                android:layout_marginBottom="2dp"
                android:layout_marginEnd="2dp"
                android:background="@drawable/round_button"
                app:srcCompat="@drawable/ic_add" />


            <RelativeLayout
                android:id="@+id/edittextlin"
                android:layout_width="120dp"
                android:layout_height="29dp"
                android:layout_alignParentBottom="true"
                android:layout_alignStart="@+id/txtName"
                android:orientation="horizontal">


                <RelativeLayout
                    android:layout_width="76dp"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginEnd="3dp">

                    <ImageView
                        android:id="@+id/plus"
                        android:layout_width="25dp"
                        android:layout_height="25dp"
                        android:layout_centerVertical="true"
                        android:layout_toEndOf="@+id/editCount"
                        android:onClick="addone"
                        android:src="@drawable/plus" />

                    <EditText
                        android:id="@+id/editCount"
                        android:layout_width="22dp"
                        android:layout_height="fill_parent"
                        android:layout_alignParentTop="true"
                        android:layout_toEndOf="@+id/less"
                        android:background="@android:color/transparent"
                        android:gravity="center"
                        android:inputType="number"
                        android:textColor="@color/colorPrimaryDark"
                        android:textSize="11dp" />

                    <ImageView
                        android:id="@+id/less"
                        android:layout_width="25dp"
                        android:layout_height="25dp"
                        android:layout_alignParentStart="true"
                        android:layout_centerVertical="true"
                        android:layout_marginStart="0dp"
                        android:onClick="lessone"
                        android:src="@drawable/mines" />

                </RelativeLayout>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentStart="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginTop="7dp"
                    android:text="تعداد"
                    android:textColor="@color/colorGrey"
                    android:textSize="11sp"
                    android:textStyle="bold" />

            </RelativeLayout>


        </RelativeLayout>

    </LinearLayout>

</android.support.v7.widget.CardView>

ItemAdapter.java

public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.MyViewHolder> {

    List<Item> itemList;
    Context mContext;
    //public int numtest = 0;


    public ItemAdapter(List<Item> itemList, Context mContext) {
        this.itemList = itemList;
        this.mContext = mContext;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View aView = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_list_item, parent, false);
        return new MyViewHolder(aView);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {

        Item aItem = itemList.get(position);
        holder.aImage.setImageResource(aItem.getImage());
        holder.aName.setText(aItem.getName());
        holder.aPrice.setText(aItem.getPrice());
        holder.aSize.setText(aItem.getSize());
        //holder.t.setText(String.valueOf(aItem.getT()));

        holder.aItem.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(mContext, "Item" + position, Toast.LENGTH_SHORT).show();
            }
        });


        /*holder.aPlus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                numtest++;
                t.setText(String.valueOf(numtest));
            }
        });

        holder.aLess.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                numtest--;
                t.setText(String.valueOf(numtest));
            }
        });*/
    }

    @Override
    public int getItemCount() {
        return itemList.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        public ImageView aImage;
        public TextView aName;
        public TextView aPrice;
        public TextView aSize;
        public LinearLayout aItem;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);

            aImage=itemView.findViewById(R.id.imageViewProduct);
            aName=itemView.findViewById(R.id.txtName);
            aPrice=itemView.findViewById(R.id.txtPrice);
            aSize=itemView.findViewById(R.id.txtSize);
            aItem=itemView.findViewById(R.id.item_list);
        }

    }
}

0 个答案:

没有答案