android输入框输入价格,小数点后留两位简单实现
2012-08-23 16:16
435 查看
正好碰到这种情况,就记录下来吧,实现起来很简单
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; @Override protected 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; } }); } @Override public 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金额输入框只允许输入小数点后两位
- 在实现文本框只能输入数字和小数点的基础上实现了价格样式(保留两位小数)
- 输入框只能输入数字且小数点只能有两位,ajax实现跳转到后台
- Android金额输入框只允许输入小数点后两位效果
- Android EditText监听小数点让用户只能输入小数点后两位
- 保持字符串小数点后两位和EditText输入框中输入的数字的长度限制
- input输入框只能输入数字且小数点后只能输入两位数字
- Android使用Activity实现简单的可输入对话框
- Android Edittext输入限制一位小数2位小数(n位)小数简单通用实现
- XZ_iOS之输入框的小数点后限制输入两位
- Android中ClearEditText实现点击EditText输入框右边清除图标来清除输入内容的两种方式
- Android EditText 输入金额(小数点后两位)
- Android中ClearEditText实现点击EditText输入框右边清除图标来清除输入内容的两种方式
- JS之 输入框限制输入数字且最大精确到小数点后两位
- 转载:html+js实现只允许输入两位小数的输入框
- android(日历+价格)思路简单,实现方便,一看就懂.我是1年安卓新人.
- Android输入框实现简单的抖动效果
- Android EditText限制小数点输入两位
- android 输入顶起输入框下被隐藏布局的实现方法