组合控件 购物车数量加减

原创 2018年04月15日 20:27:38

一、创建attrs 

<resources>
    <declare-styleable name="AddDerViewAttr" >
        <attr name="left_text" format="string"></attr>
        <attr name="rigth_text" format="string"></attr>
        <attr name="left_text_color" format="color"></attr>
        <attr name="rigth_text_color" format="color"></attr>
        <attr name="edit_text" format="integer"></attr>
     </declare-styleable>

</resources>

二、自定义view

public class AddDerView extends LinearLayout {

    private EditText etnum;
    private TextView der;
    private TextView ad;

    public AddDerView(Context context) {
        this(context,null);
    }

    public AddDerView(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs,0);
    }

    public AddDerView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initview(context,attrs,defStyleAttr);

    }

    //1定义一个接口
    public interface OnAddDerClickListener{
        void onClickAdd(View v);
        void onClickDer(View v);
     }
     //2.声明一个接口对象
     private OnAddDerClickListener listener;
    //3.给外部提供一个设置接口对象的方法
    public void setOnAddDerClickListener(OnAddDerClickListener listener){
        this.listener=listener;

    }

    public int getEtnum() {
        return Integer.valueOf(etnum.getText().toString().trim());
    }

    public void setEtnum(int num) {
         etnum.setText(num+" ");
    }

    private void initview(Context context,AttributeSet attrs, int defStyleAttr) {
        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AddDerViewAttr);
        String left_text = a.getString(R.styleable.AddDerViewAttr_left_text);
        String rigth_text = a.getString(R.styleable.AddDerViewAttr_rigth_text);
        int left_text_color = a.getColor(R.styleable.AddDerViewAttr_left_text_color, Color.BLACK);
        int rigth_text_color = a.getColor(R.styleable.AddDerViewAttr_rigth_text_color, Color.BLACK);
        int edit_text = a.getInteger(R.styleable.AddDerViewAttr_edit_text, 10);



        View view = View.inflate(context, R.layout.addview, this);
        der = view.findViewById(R.id.der);
        ad = view.findViewById(R.id.ad);
        etnum = view.findViewById(R.id.etnum);

        der.setText(left_text);
        ad.setText(rigth_text);
        der.setTextColor(left_text_color);
        ad.setTextColor(rigth_text_color);
        etnum.setText(edit_text+"");

        der.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                if(listener!=null){
                    listener.onClickDer(view);
                }
            }
        });

        ad.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                if(listener!=null){
                    listener.onClickAdd(view);
                }
            }
        });
    }

    public void setBackground(int color){
        der.setBackgroundColor(color);
        ad.setBackgroundColor(color);
    }

}
三、在ManiActivity中调用接口
public class MainActivity extends AppCompatActivity {

    private AddDerView adv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        adv = findViewById(R.id.adv);
        //调用自定义的接口对象
        adv.setOnAddDerClickListener(new AddDerView.OnAddDerClickListener() {
            @Override
            public void onClickAdd(View v) {
                int etnum = adv.getEtnum();
                etnum++;
                adv.setEtnum(etnum);


            }

            @Override
            public void onClickDer(View v) {
                int etnum = adv.getEtnum();
                if (etnum>1){
                    etnum--;
                    adv.setEtnum(etnum);
                }
            }
        });

        adv.setBackground(Color.BLUE);

    }
}
最后在布局中
<com.example.xiangmuday03.AddDerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:left_text="减"
    app:rigth_text="加"
    app:left_text_color="#ffffff"
    app:rigth_text_color="#ffffff"
    app:edit_text="15"
    android:id="@+id/adv"></com.example.xiangmuday03.AddDerView>


Android自定义组合控件

【课程介绍】 开发工具:Android Studo ;如何自定义组合控件
  • 2016年11月13日 21:15

购物车数量加减,增删改查

select{                 margin-left: 200px;             }             .btn01{                 ba...
  • DJSYPO
  • DJSYPO
  • 2018-01-17 10:11:38
  • 168

购物车数量的加减,以及全选

div class="divtable"> table id="mytable"> tr> th>input type="checkbox" id="chk"/>全选th> ...
  • yu9696
  • yu9696
  • 2016-07-01 21:56:36
  • 982

初学者---Android 自定义控件之购物车数量加减器

转载自:鲁鲁晓生http://blog.csdn.net/whitley_gong/article/details/51956429 先看来看效果图: 一、实现思路 整个控件其实是由两个Bu...
  • xcjean
  • xcjean
  • 2017-11-22 13:44:50
  • 621

Android自定义控件之购物车数量加减器

刚开始在网上搜寻了一番,没找到特别合适,所以就自己简单的写了一个,其实也没什么复杂,就是一个组合控件,记录一下,方便自己以后的使用,同时也希望可以帮助有需要的朋友。二、效果展示三、实现思路整个控件其实...
  • whitley_gong
  • whitley_gong
  • 2016-07-19 17:02:22
  • 14885

关于iOS购物车数量加减(仅适用于整数加减法)

.h #import typedef NS_OPTIONS(NSInteger, ADDTYPE) {          NO_SUBTRACTTYPE =0,      ...
  • zhaojiao123456
  • zhaojiao123456
  • 2018-01-02 10:51:39
  • 146

android购物车数量加减

【该项目实训是Android基础知识的一个综合练习,特别提示:项目中会用到一些图片素材,都是随意整理的,稍后会上传一个资源,包含该事项项目的基本功能,也含有图片素材】 【项目题目】:校园订餐...
  • Zzq_Big_Cow
  • Zzq_Big_Cow
  • 2016-11-14 11:07:47
  • 3448

实现购物车商品数量+1、-1按钮的效果

需求:楼主最近在做一个商城类的APP,购物页面和购物车中都要实现一个+1、-1按钮的功能,用于动态来指定商品的数量 废话不多说,开始撸码: 1.自定义一个AddSubView继承于线性布局...
  • xinpengfei521
  • xinpengfei521
  • 2016-11-27 22:04:31
  • 2338

购物车数量加减,并统计选中数量和选中总价

  • 2016年08月11日 09:26
  • 2.65MB
  • 下载

jQuery实现购物车物品数量的加减

jQuery实现购物车物品数量的加减 $(function(){ var t = $("#text_box"); $("#add").click(function(){ t.val(p...
  • u013372487
  • u013372487
  • 2015-11-11 13:29:52
  • 1478
收藏助手
不良信息举报
您举报文章:组合控件 购物车数量加减
举报原因:
原因补充:

(最多只允许输入30个字)