您的位置:首页 > 移动开发 > Android开发

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

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

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

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

et.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}

@Override
public void afterTextChanged(Editable s) {
}
})


另一个只重写一个方法

et.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
}
})


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

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

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

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

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

嘿嘿。这样就解决了光标的问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息