【Android】输入金额时自动补加一个元,金额删干净时,元字自动消失

来源:互联网 发布:淘宝怎么买原味内衣 编辑:程序博客网 时间:2024/06/10 20:06

最近在做一个项目,有个界面要输入金额,金额数字和单位“元”是连在一起的,不是左边一个EditText,右边一个写着“元”的TextView;而是金额数字和“元”看起来是在一起的。

刚开始我想起以前有个EditText的方法,还有两个,一个是addTextChangedListener(new TextWatcher())方法,另一个是setOnFocusChangeListener方法。

add开头的那个方法中的接口中可以重写三个方法

et.addTextChangedListener(new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void afterTextChanged(Editable s) {}})


另一个只重写一个方法

et.setOnFocusChangeListener(new OnFocusChangeListener() {@Overridepublic void onFocusChange(View v, boolean hasFocus) {}})

这两个方法,大家可以直接百度,我在这里不详情说了,我开始用的是set那个方法,只实现了获得焦点时自动补全“元”,失去焦点,其实我当时的情况还比较特殊,我失去不了焦点。如果页面上有两个EditText还好,能失去焦点,如果只有一个EditText,我就失不了焦点了,因为我的这个EditText是Activity中动态添加上去的,反正当时有难处,后来放弃了set的那个方法。


再说说add的这个方法吧,接口中可以重写3个方法,不过研究后,发现只有onTextChanged还可以用,其它两个不太好使。

这个add方法可以帮 我实现随时监控我是否输入数字,输入了就加个元,是0开关的就不让输入,但是有一点体验不好,输入的第一个数字和“元”连在了一起,比如说我第一个数字想输入1,不小心按了4,我想删除,这时候我的光标可不在4和“元”之间,最后我也舍充弃了这个方法。

因为我突然想到了一个非常简单有效的方法,想到这个方法我都气自己好笨,

具体方法是:金额和“元”分两个控件,金额用EditText,“元”用TextView,然后我再用上面的那个add的接口中的方法,根据输入数字的长度来监控TextViiew控件是否显示。

嘿嘿。这样就解决了光标的问题了。


0 0
原创粉丝点击