組合式自定義控件_購物車加減商品操作

MainActivity.java

public class MainActivity extends AppCompatActivity {

        private Addand mAddand;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mAddand= findViewById(R.id.add);
    
            mAddand.setOnNumberChangedListener(new Addand.OnNumberChangedListener() {
                @Override
                public void OnNumberChanged(int vs) {
                    Toast.makeText(MainActivity.this, vs+"", Toast.LENGTH_SHORT).show();
                }
            });
        }
    }

activity_main.xml

<android.support.constraint.ConstraintLayout 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"
    tools:context=".MainActivity"
    android:orientation="horizontal">

    <fanruiqi.www.com.jia.Addand
        android:id="@+id/add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</android.support.constraint.ConstraintLayout>

Addand.java

public class Addand extends FrameLayout implements View.OnClickListener{
    private ImageView mImage1;
    private ImageView mImage2;
    private TextView mText;
    int value;

    public Addand(@NonNull Context context) {
        this(context,null);
    }

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

    public Addand(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

        findView(context);
    }

    private void findView(Context context) {
        View view = View.inflate(context, R.layout.add, this);

         mImage1 =view.findViewById(R.id.image1);
         mImage2 = view.findViewById(R.id.image2);
         mText = view.findViewById(R.id.text);

         value=getValue();

         setValue(value);

         mImage1.setOnClickListener(this);
         mImage2.setOnClickListener(this);
    }
    private int vs=1;
    public int getValue() {  //獲取值

        String trim = mText.getText().toString().trim();
        if (!TextUtils.isEmpty(trim)){
            Integer.valueOf(vs);
        }
        return vs;
    }

    public void setValue(int value) {
        mText.setText(value+"");
    }

    @Override
    public void onClick(View view) {

        switch (view.getId()){
            case R.id.image1:
                add();
                break;
            case R.id.image2:
                jian();
                break;
        }
    }

    private void jian() {
        if (vs>1){
            vs--;
            setValue(vs);
        }

        mOnNumberChangedListener.OnNumberChanged(vs);
    }

    private void add() {

        if (vs<6){
            vs++;
            setValue(vs);
        }

        mOnNumberChangedListener.OnNumberChanged(vs);
    }

    public interface OnNumberChangedListener{
        void OnNumberChanged(int vs);
    }

    private OnNumberChangedListener mOnNumberChangedListener;

    public void setOnNumberChangedListener(OnNumberChangedListener onNumberChangedListener){
           mOnNumberChangedListener=onNumberChangedListener;
    }

}

add.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/image1"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:src="@drawable/ic_launcher_background"/>

    <TextView
        android:id="@+id/text"
        android:layout_width="50dp"
        android:layout_height="20dp"
        android:gravity="center"
        android:text="1"/>

    <ImageView
        android:id="@+id/image2"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:src="@drawable/ic_launcher_background"/>
</LinearLayout>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章