Android combined custom control to realize shopping cart addition and subtraction goods operation
- 2021-10-24 23:48:15
- OfStack
This article example for everyone to share the Android shopping cart to add and subtract goods operation of the specific code, for your reference, the specific content is as follows
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() { // Get a value
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>