天天看點

組合式自定義控件購物車商品添加減少

//組合式自定義      
控件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <ImageButton
        android:id="@+id/iv_sub"
        android:src="@drawable/a"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
<TextView
    android:id="@+id/text"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:gravity="center"
    android:text="1"
    android:textColor="@android:color/background_dark"
    android:textSize="20sp"/>
    <ImageButton
        android:id="@+id/iv_sub2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/b"/>
</LinearLayout>      
public class AddSubView extends LinearLayout implements View.OnClickListener {

    private View inflate;
    private ImageButton imageButton;
    private ImageButton imageButton1;
    private TextView textView;
    private int mValue;


    //在建立對象的時候調用
    public AddSubView(Context context) {
        this(context, null);
    }

    //在MML檔案中調用
    public AddSubView(Context context, AttributeSet attrs) {
        this(context, null, 0);
    }

    //在XML中使用,且使用style風格中
    public AddSubView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView(getContext());
    }

    private void initView(Context context) {
        inflate = View.inflate(context, R.layout.add_sub_view, this);
        imageButton = (ImageButton) inflate.findViewById(R.id.iv_sub);
        imageButton1 = (ImageButton) inflate.findViewById(R.id.iv_sub2);
        textView = (TextView) inflate.findViewById(R.id.text);
        imageButton1.setOnClickListener(this);
        imageButton.setOnClickListener(this);
        //獲取value
        getValue();

    }

//目前數量值,預設為1,設定對此值得擷取
    private  int value =1;
    public int getValue() {
        String trim = textView.getText().toString().trim();
           if (!TextUtils.isEmpty(trim)){
               //獲取出來,應為值是字元串,是以要進行int轉化
               value=Integer.valueOf(trim);

           }
        return value;
    }
public  void  setValue(int value){
    mValue=value;
    textView.setText(value+"");
}
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.iv_sub://減
                if (value>0){
                    value--;
                }
                setValue(value);
                break;
            case R.id.iv_sub2://加
                if (value<5){
                    value++;
                }
           setValue(value);

        }
    }
}      
<example.addsuview.AddSubView
    android:id="@+id/av"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>