//布局文件
//此方法可以实现加减购物车
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt_delete" android:background="#999fff" android:padding="5dp" android:text="-"/> <EditText android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/et_number" android:gravity="center" android:layout_weight="1" android:text="1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt_add" android:background="#999fff" android:padding="5dp" android:text="+"/>//自定义接口
package com.example.jiekou; import android.content.Context; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; /** * Created by Zhijun on 2017/11/2. */ public class Delected extends LinearLayout { private static final String TAG="AddDaleteView"; private EditText etNumber; private OnAddDelClickListener listener; interface OnAddDelClickListener{ void onAddClick(View v); void onDelClick(View v); } public void OnAddDelClickListener(OnAddDelClickListener listener){ if(listener!=null){ this.listener=listener; } } public Delected(Context context) { this(context,null); } public Delected(Context context, @Nullable AttributeSet attrs) { this(context,attrs,0); } public Delected(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initView(context,attrs,defStyleAttr); } public Delected(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); initView(context,attrs,defStyleAttr); } private void initView(Context context, AttributeSet attrs, int defStyleAttr) { View.inflate(context,R.layout.add_delete,this); TextView txtDelete = (TextView) findViewById(R.id.txt_delete); TextView txtAdd = (TextView) findViewById(R.id.txt_add); etNumber = (EditText) findViewById(R.id.et_number); txtDelete.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { listener.onDelClick(view); } }); txtAdd.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { listener.onAddClick(view); } }); } public void setNumber(int number){ Log.i(TAG,"setNumber"+number); if(number>0){ etNumber.setText(number+""); } } public int getNumber(){ int number=0; try{ String nummberStr = etNumber.getText().toString().trim(); number = Integer.valueOf(nummberStr); }catch (Exception e){ number=0; } return number; } }//mainActivity
package com.example.jiekou; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.EventLogTags; import android.util.Log; import android.view.View; public class MainActivity extends AppCompatActivity { private static final String TAG="MainActivity"; private Delected adv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); adv = (Delected) findViewById(R.id.adv_main); adv.OnAddDelClickListener(new Delected.OnAddDelClickListener(){ @Override public void onAddClick(View v) { Log.i(TAG,"onAddclick:执行"); int origin = adv.getNumber(); origin++; adv.setNumber(origin); } @Override public void onDelClick(View v) { int origin = adv.getNumber(); origin--; adv.setNumber(origin); } }); } }
本文介绍了一种用于Android应用中的购物车商品数量增减控件的实现方法。通过自定义视图组件,结合EditText输入框与TextView按钮,实现了商品数量的便捷调整功能。该控件提供加减按钮来修改商品数量,并支持外部监听器回调,以便应用程序能响应数量变化。

2万+

被折叠的 条评论
为什么被折叠?



