android输入框输入价格,小数点后留两位简单实现
来源:互联网 发布:手机nfc软件下载 编辑:程序博客网 时间:2024/04/29 18:27
正好碰到这种情况,就记录下来吧,实现起来很简单
xml文件里加个靠右限制就把光标移到右边去了,初始值设置成0.00
<EditText android:id="@+id/id_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical|right" android:numeric="integer" android:text="0.00" />
然后代码里实现
代码中要注意不要在字符未改变时对editText.setText,否则会报 StackOverflowError
public class MainActivity extends Activity {EditText edit;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);edit = (EditText) findViewById(R.id.id_edit); edit.addTextChangedListener(new TextWatcher() { private boolean isChanged = false; @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub if (isChanged) {// ----->如果字符未改变则返回 return; } String str = s.toString(); isChanged = true; String cuttedStr = str; /* 删除字符串中的dot */ for (int i = str.length() - 1; i >= 0; i--) { char c = str.charAt(i); if ('.' == c) { cuttedStr = str.substring(0, i) + str.substring(i + 1); break; } } /* 删除前面多余的0 */ int NUM = cuttedStr.length(); int zeroIndex = -1; for (int i = 0; i < NUM - 2; i++) { char c = cuttedStr.charAt(i); if (c != '0') { zeroIndex = i; break; }else if(i == NUM - 3){ zeroIndex = i; break; } } if(zeroIndex != -1){ cuttedStr = cuttedStr.substring(zeroIndex); } /* 不足3位补0 */ if (cuttedStr.length() < 3) { cuttedStr = "0" + cuttedStr; } /* 加上dot,以显示小数点后两位 */ cuttedStr = cuttedStr.substring(0, cuttedStr.length() - 2) + "." + cuttedStr.substring(cuttedStr.length() - 2); edit.setText(cuttedStr); edit.setSelection(edit.length()); isChanged = false; } }); }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
- android输入框输入价格,小数点后留两位简单实现
- android输入框输入价格,小数点后留两位简单实现
- EditText 输入小数点,价格
- Android自定义价格输入框EditText
- android 金额输入框(小数点后两位)
- Android金额输入框只允许输入小数点后两位
- 输入框只能输入数字和小数点
- 输入框只能输入数字和小数点
- input 输入框禁止输入小数点
- js 价格输入框限制
- 输入框限制小数点 后两位
- android 编辑框输入类型为带小数点数字
- js实现只能输入数字小数点、其他输入不进去
- Android EditText限制小数点输入两位
- Android EditText 输入金额(小数点后两位)
- Android 限制EditText输入小数点后面位数
- Android EditText监听小数点让用户只能输入小数点后两位
- Android EditText监听小数点让用户只能输入小数点后两位
- CVTRES : fatal error CVT1100: duplicate resource. type:CURSOR, name:2, language
- 韩顺平--面向对象类变量、类方法
- 代码生成数据库及更新数据库:Entity Framework first code(http://www.cnblogs.com/haogj/archive/2012/02/17/2356537.ht
- DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据
- onmouseover特效
- android输入框输入价格,小数点后留两位简单实现
- 初学乍练WPF
- js函数
- 用Windows API进行串口编程的一般步骤及相关函数讲解
- Red Hat 9安装MySQL
- mangos 简介
- BitmapFactory.Options详解 怎样获取图片的大小 遇到大一些的图片,遇到OOM(Out Of Memory)的问题
- [转]做交互应该知道的视觉几件事
- glut回调函数学习