Android基础--EditText输入框限制小数的位数解决方法

更新时间:2023-07-26 20:06:42 阅读: 评论:0

Android基础--EditText输⼊框限制⼩数的位数解决⽅法
在开发中,会有⼀些需求,EditText输⼊框,只可以输⼊⼀位⼩数,或者只可以输⼊2位⼩数,那么我们该去怎么做呢?
⾸先在xml⽂件⾥⾯:
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="100dp"
android:hint="请输⼊带⼀位的⼩数"
旋风少女主题曲android:inputType="numberDecimal"/>
从上⾯的代码⾥⾯,android:inputType=”numberDecimal”,这句代表弹出的键盘是可输⼊⼩数的数字键盘。
接下来我们想要控制输⼊的⼩数位数,那么我们就会想到要给EditText添加监听事件addTextChangedListener(),⽤TextWatcher接⼝监听,那就先说下TextWatcher的⽤法吧:
TextWatcher textWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
//表⽰最终内容
边城故事
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
/**
* start 开始的位置,count被改变的旧内容数, after改变后的内容数量.
* 这⾥的s表⽰改变之前的内容,通常start和count组合,
* 可以在s中读取本次改变字段中被改变的内容。
* ⽽after表⽰改变后新的内容的数量。
*/
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
/**
* start开始位置,before改变前的内容数量,count新增数.
* 这⾥的s表⽰改变之后的内容,通常start和count组合,
* 可以在s中读取本次改变字段中新的内容。
* ⽽before表⽰被改变的内容的数量。
*/
}
};
上⾯的了解了,那么我们限制⼩数的位数就不难了
public class MainActivity extends AppCompatActivity {
private static final int DECIMAL_DIGITS = 1;//⼩数的位数
private EditText edit;
交互效应
@Override
protected void onCreate(Bundle savedInstanceState) {
tContentView(R.layout.activity_main);
edit = (EditText) findViewById(R.id.edit_text);
tPoint(edit);
}
public static void tPoint(final EditText editText) {
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,int count) {
if (s.toString().contains(".")) {
if (s.length() - 1 - s.toString().indexOf(".") > DECIMAL_DIGITS) {
s = s.toString().subSequence(0,
editText.tText(s);
editText.tSelection(s.length());
}
外卖评价
}
if (s.toString().trim().substring(0).equals(".")) {
s = "0" + s;
editText.tText(s);
editText.tSelection(2);
}
if (s.toString().startsWith("0")
&& s.toString().trim().length() > 1) {
if (!s.toString().substring(1, 2).equals(".")) {
editText.tText(s.subSequence(0, 1));
editText.tSelection(1);
return;
}
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,int after) {            }
@Override
public void afterTextChanged(Editable s) {
}坚式计算
});
责任的英语
}
}
通过上⾯的代码就可以实现只能输⼊⼀位⼩数,如果想设置只能输⼊2位⼩数,只要把牛排英语怎么读
韭菜鸡蛋虾皮饺子private static final int DECIMAL_DIGITS = 1;改为2就可以了!代码很简单,就不在上传源码了! 有疑问请留⾔,谢谢!

本文发布于:2023-07-26 20:06:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1097799.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:改变   内容   添加   只能   位数   鸡蛋   旋风
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图