实现点击加减数字进行变化
2017-10-24 20:15
459 查看
//首先是main中的布局
//mainAcitivity
//jiajian
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="horizontal" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="zhoukao.demo01.com.jiajianqi.MainActivity"> //要记住这里的jiajian是你自己的类
<zhoukao.demo01.com.jiajianqi.Jiajian android:id="@+id/Myjiajian" app:butsize="15sp" app:textsize="15sp" app:butwidth="80dp" app:textwith="80dp" android:layout_width="wrap_content" android:layout_height="wrap_content"></zhoukao.demo01.com.jiajianqi.Jiajian> </LinearLayout>
//mainAcitivity
package zhoukao.demo01.com.jiajianqi; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Jiajian myjiajian= (Jiajian) findViewById(R.id.Myjiajian); myjiajian.setGoods_storage(50); myjiajian.setMytextlistner(new Jiajian.OnTextListener() { @Override public void onAmountChange(View view, int amount) { Toast.makeText(MainActivity.this, "amount=="+amount, Toast.LENGTH_SHORT).show(); } }); } }
//jiajian布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_marginTop="5dp" android:id="@+id/bt_jian" android:layout_width="wrap_content" android:layout_height="50dp" android:background="#fff" android:text="-" android:textSize="40sp" /> <EditText android:inputType="number" android:cursorVisible="false" android:text="1" android:gravity="center" android:id="@+id/ed_text" android:layout_width="40dp" android:layout_height="50dp" android:background="@null" /> <Button android:layout_marginTop="5dp" android:id="@+id/bt_jia" android:background="#fff" android:layout_width="wrap_content" android:layout_height="50dp" android:text="+" android:textSize="40sp" /> </LinearLayout>
//jiajian
package zhoukao.demo01.com.jiajianqi; import android.content.Context; import android.content.res.TypedArray; import android.support.annotation.Nullable; import android.text.Editable; import android.text.TextWatcher; import android.util.AttributeSet; import android.util.TypedValue; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout;
public class Jiajian extends LinearLayout implements View.OnClickListener, TextWatcher { private Button bt_jia; private Button bt_jian; private EditText ed_text; private int amount = 1; //购买数量 private int goods_storage = 1; //商品库 private OnTextListener mytextlistner; public Jiajian(Context context) { this(context,null); } public Jiajian(Context context, @Nullable AttributeSet attrs) { super(context, attrs); View view = View.inflate(context, R.layout.mjiajian, this); bt_jia=view.findViewById(R.id.bt_jia); bt_jian=view.findViewById(R.id.bt_jian); bt_jia.setOnClickListener(this); bt_jian.setOnClickListener(this); ed_text=view.findViewById(R.id.ed_text); ed_text.setOnClickListener(this); ed_text.addTextChangedListener(this); TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.Jiajian); int btnwidth = array.getDimensionPixelSize(R.styleable.Jiajian_butwidth, 80); int tvwidth = array.getDimensionPixelSize(R.styleable.Jiajian_textwith, 80); int textsize = array.getDimensionPixelSize(R.styleable.Jiajian_textsize, 20); int btnsize = array.getDimensionPixelSize(R.styleable.Jiajian_butsize, 20); array.recycle(); LayoutParams btnParams = new LayoutParams(btnwidth, LayoutParams.MATCH_PARENT); bt_jia.setLayoutParams(btnParams); bt_jian.setLayoutParams(btnParams); if (btnsize != 0) { bt_jia.setTextSize(TypedValue.COMPLEX_UNIT_SP, btnsize); bt_jian.setTextSize(TypedValue.COMPLEX_UNIT_SP, btnsize); } LayoutParams textParams = new LayoutParams(tvwidth, LayoutParams.MATCH_PARENT); ed_text.setLayoutParams(textParams); if (textsize != 0) { ed_text.setTextSize(textsize); } } public Jiajian(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void setMytextlistner(OnTextListener mytextlistner) { this.mytextlistner = mytextlistner; } @Override public void onClick(View view) { int i = view.getId(); if (i == R.id.bt_jian) { if (amount > 1) { amount--; ed_text.setText(amount + ""); } ed_text.setCursorVisible(false); } else if (i == R.id.bt_jia) { if (amount < goods_storage) { amount++; ed_text.setText(amount + ""); } ed_text.setCursorVisible(false); } if(i==R.id.ed_text){ ed_text.setCursorVisible(true); } ed_text.clearFocus(); } public void setGoods_storage(int goods_storage) { this.goods_storage = goods_storage; } @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable s) { if (s.toString().isEmpty()) return; amount = Integer.valueOf(s.toString()); if (amount > goods_storage) { ed_text.setText(goods_storage + ""); return; } if(mytextlistner!=null){ mytextlistner.onAmountChange(this,amount); } } public interface OnTextListener { void onAmountChange(View view, int amount); } }
相关文章推荐
- Js中实现日期加减--字符串转换成数字进行运算
- 安卓点击加减号实现数字加减功能
- 1怎样让输入的text文本填写的部分只添加数字、2怎样将输入的数字一次性全部删除 3怎样选择密码 让它不显示 4 怎样实现在没有return的情况下点击button的情况下就能够使键盘页面下落5 怎样实现点击指定的button来对使指定的text进行键盘弹出 6怎样改变button按钮的状态
- 利用tensorflow一步一步实现基于MNIST 数据集进行手写数字识别的神经网络,逻辑回归
- C#:ListView控件如何实现点击列表头进行排序?
- 实现一个数值加法函数,返回两个数字的和。要求能进行参数验证,若参数不是数字或为空则抛出异常。
- iOS使用UICountingLabel实现数字变化的动画效果
- [Selenium]通过Selenium实现在当前浏览器窗口点击一个图标之后,弹出另外一个窗口,关闭这个窗口,再回到原来的窗口进行操作
- 实现数字加减
- 对CAB包进行数字签名及实现分发的过程
- iOS使用UICountingLabel实现数字变化的动画效果
- bootstrap-table 怎么自定义搜索按钮实现点击按钮进行查询
- qt4下实现自定义槽---点击按钮数字加一
- web页面如何实现点击按钮进行手机拨号?
- jQuery实现购物车数字加减效果
- 实现启动app,首页倒计时跳转,也可点击按钮进行跳转
- android 实现edittext输入内容后可以点击右侧小图片进行清除内容
- JavaScript实现简单的图片轮播(通过点击数字切换)
- textview中点击效果实现,比如点击textview中实现图片和文字的颜色变化(类似于button)