android-edittext兩種方法限制輸入兩位小數
說實話,這個需求簡直可以說無處不在了,因為,只要有輸入金額的需求,客戶端限制輸入位數幾乎是肯定的。
1.首位輸入.
的時候,補全為0.
2.刪除「.」後面超過2位後的資料
3.如果起始位置為0,且第二位跟的不是".",則無法後續輸入
/**
* *描述 :金額輸入字型監聽類,限制小數點後輸入位數
* * 預設限制小數點2位
* 預設第一位輸入小數點時,轉換為0.
* 如果起始位置為0,且第二位跟的不是".",則無法後續輸入
* *作者 :created by duanrui on 2017/9/28.
*/public
class
moneytextwatcher
implements
textwatcher
public moneytextwatcher setdigits
(int d)
@override
public
void
beforetextchanged
(charsequence s,
int start,
int count,
int after)
@override
public
void
ontextchanged
(charsequence s,
int start,
int before,
int count)
}//如果"."在起始位置,則起始位置自動補0
if(s.
tostring()
.trim()
.substring(0
).equals
("."))
//如果起始位置為0,且第二位跟的不是".",則無法後續輸入
if(s.
tostring()
.startswith
("0"
)&& s.
tostring()
.trim()
.length()
>1)
}}}@override
public
void
aftertextchanged
(editable s)
}
使用方法:
//預設兩位小數
medittext.
addtextchangedlistener
(new
moneytextwatcher
(medittext1));
//手動設定其他位數,例如3
medittext.
addtextchangedlistener
(new
moneytextwatcher
(medittext1)
.setdigits(3
);
/**
* *描述 :金額輸入過濾器,限制小數點後輸入位數
* * 預設限制小數點2位
* 預設第一位輸入小數點時,轉換為0.
* 如果起始位置為0,且第二位跟的不是".",則無法後續輸入
* *作者 :created by duanrui on 2017/9/28.
*/public
class
moneyvaluefilter
extends
digitskeylistener
private
int digits =2;
public moneyvaluefilter setdigits
(int d)
@override
public charsequence filter
(charsequence source,
int start,
int end,
spanned dest,
int dstart,
int dend)
int len = end - start;
// if deleting, source is empty
// and deleting can't break anything
if(len ==0)
//以點開始的時候,自動在前面新增0
if(source.
tostring()
.equals
("."
)&& dstart ==0)
//如果起始位置為0,且第二位跟的不是".",則無法後續輸入if(
!source.
tostring()
.equals
("."
)&& dest.
tostring()
.equals
("0"))
int dlen = dest.
length()
;// find the position of the decimal .
for(
int i =
0; i < dstart; i++)}
for(
int i = start; i < end;
++i)
}// if the dot is after the inserted part,
// nothing can break
return
newspannablestringbuilder
(source, start, end);}
}
使用方法:
//預設兩位小數
medittext.
setfilters
(new
inputfilter
);//手動設定其他位數,例如3
medittext.
setfilters
(new
inputfilter
);
android edittext學習記錄
實現在edittext中輸入自定義表情,需要將放在drawable中的表情,嵌入到edittext中,這裡利用imagespan實現該功能。第一步 利用反射機制,得到資源的id,生成bitmap物件 field field r.drawable.class.getdeclaredfield imag...
Android EditText屬性總結
接下來老於就總結一下 edittext屬性吧!android inputtype none 這個就不要解釋了吧 android inputtype text 文字型別,多為大寫 小寫和數字符號 android inputtype textcapcharacters 字母大寫 android inpu...
Android EditText左右滑動
預設的edittext寫滿一行後會自動轉換到下一行,但是我們有時候需要的滿一行後左右滑動過去而不是換行,此時我們可以設定edittext 的屬性 android maxlines 1 即可,如果不可以,則加上 android singleline true android layout width ...