加减器_2

package com.bwei.yuekao_7.ui.weight;

import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.bwei.yuekao_7.R;

public class ToggleButton  extends LinearLayout {



    public ToggleButton(Context context) {
        super(context);
    }

    public ToggleButton(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        //1.
        initView(context);
    }

    private void initView(final Context context) {
        //2.创建布局
        View rootView = LayoutInflater.from(context).inflate(R.layout.togglebtn_view, this);
       Button btn_delete = findViewById(R.id.btn_delete);
        Button  btn_add = findViewById(R.id.btn_add);
       final TextView tv_count = findViewById(R.id.tv_num);
        btn_delete.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                String numString = tv_count.getText().toString();
                int number = new Integer(numString);
                if ( number > 1 ){
                      number--;
                    tv_count.setText(number+"");
                    //7.点击按钮时回传数据
                    onNumCallBack.onShowNum(number);
                }else {
                    Toast.makeText(context,"最小不能小于1",Toast.LENGTH_SHORT).show();

                }
            }
        });
        btn_add.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                String numString = tv_count.getText().toString();
                int number = new Integer(numString);
                number++;
                tv_count.setText(number+"");
                //8.点击加号按钮是
                onNumCallBack.onShowNum(number);
            }
        });
    }

    //4.
    public interface OnNumCallBack{
        void onShowNum(int number);
    }
    //5.
    public OnNumCallBack onNumCallBack;
    //6.
    public void setOnNumCallBack(OnNumCallBack onNumCallBack){
        this.onNumCallBack = onNumCallBack;
    }
}

//Adapter

package com.bwei.yuekao_7.ui.adapter;

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.bwei.yuekao_7.R;
import com.bwei.yuekao_7.data.bean.UserBean;
import com.bwei.yuekao_7.ui.weight.ToggleButton;
import com.squareup.picasso.Picasso;

import java.util.ArrayList;

/**
 * Created by 杨柳 on 2018/8/23.
 */

public class SubAdapter extends RecyclerView.Adapter<SubAdapter.SubViewHolder>{

    private Context context;
    private ArrayList<UserBean.DataBean> data;

    public SubAdapter(Context context, ArrayList<UserBean.DataBean> data) {
        this.context = context;
        this.data = data;
    }

    @NonNull
    @Override
    public SubViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View rootView = LayoutInflater.from(context).inflate(R.layout.item_layout, parent, false);
        SubViewHolder subViewHolder = new SubViewHolder(rootView);
        return subViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull final SubViewHolder holder, final int position) {
        String images = data.get(position).getList().get(0).getImages();
        if ( images != null && images.contains("|")){
            String[] imgUrl = images.split("\\|");
            Picasso.get().load(imgUrl[0]).into(holder.iv_showIcon);
        }else {
            Picasso.get().load(images).into(holder.iv_showIcon);
        }
        //对文字展示
        holder.tv_showInfo.setText(data.get(position).getList().get(0).getTitle());
        holder.tv_price.setText("单价是¥:"+(data.get(position).getList().get(0).getPrice()*data.get(position).getList().get(0).getNum()));
        //1.获取数据源的条目信息
        holder.check.setChecked(data.get(position).getChecked());
        //②.加1减1
        holder.count_view.setOnNumCallBack(new ToggleButton.OnNumCallBack() {
            @Override
            public void onShowNum(int number) {
                data.get(position).getList().get(0).setNum(number);
                notifyDataSetChanged();
            }
        });

    }

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

    class SubViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        private final CheckBox check;
        private final ImageView iv_showIcon;
        private final TextView tv_showInfo;
        private final TextView tv_price;
        private final ToggleButton count_view;

        public SubViewHolder(View itemView) {
            super(itemView);
            check = itemView.findViewById(R.id.cb_chose);
            iv_showIcon = itemView.findViewById(R.id.iv_showIcon);
            tv_showInfo = itemView.findViewById(R.id.tv_showInfo);
            tv_price = itemView.findViewById(R.id.tv_price);
            //①.加1减1
            count_view = itemView.findViewById(R.id.count_view);
            //2.设置监听方法(选第二个)
            check.setOnClickListener(this);
        }

        @Override
        public void onClick(View view) {
            //9.把点击时的位置进行回转
            int position = getLayoutPosition();
            //10.
            boolean checked = check.isChecked();
            //8.----把9定义的position传进来
            onItemCheckListener.onItemChecked(position,checked);

        }
    }

    //3.设置接口
    public interface OnItemCheckListener{
        //4.用于反馈
        void onItemChecked(int position, boolean checked);
    }

    //5
    OnItemCheckListener onItemCheckListener;
    //6.
    public void setOnItemCheckListener(OnItemCheckListener onItemCheckListener){
        //7.
        this.onItemCheckListener = onItemCheckListener;
    }
}

//Adapter布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <CheckBox
        android:id="@+id/cb_chose"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        />
    <ImageView
        android:id="@+id/iv_showIcon"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@mipmap/ic_launcher"
        android:layout_marginLeft="50dp"
        />
    <TextView
        android:id="@+id/tv_showInfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="xxx"
        android:textSize="20sp"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="140dp"
        />
    <TextView
        android:id="@+id/tv_price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="xxx"
        android:layout_marginLeft="140dp"
        android:layout_marginTop="100dp"
        android:textColor="#ff00"
        />
    <com.bwei.yuekao_7.ui.weight.ToggleButton
        android:id="@+id/count_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginTop="100dp"
        ></com.bwei.yuekao_7.ui.weight.ToggleButton>
</RelativeLayout>

//自定义布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >
    <Button
        android:id="@+id/btn_delete"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:background="@drawable/jian"
        />

    <TextView
        android:id="@+id/tv_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="1"
        />
    <Button
        android:id="@+id/btn_add"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:background="@drawable/jia"
        />

</LinearLayout>

猜你喜欢

转载自blog.csdn.net/Yang_Liu_1/article/details/82015853