我必須格式化編號,因爲用戶在Edit Text
中輸入編號。如果用戶輸入單個數字,則應該出現0,0x
。如果用戶輸入兩位數字,則應該出現0,xx
。如果三位數然後x,xx
。如果四位數然後xx,xx
。如果五位數然後xxx,xx
。如果六位數然後x.xxx,xx
。如果七位數然後xx.xxx,xx
。如果八位數然後xxx.xxx,xx
。任何人都可以幫我嗎?提前致謝。當用戶在編輯文本中輸入數字時的格式編號
-1
A
回答
0
你可以使用addTextChangedListener
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Write your logic here to parse the text
// and format it in the way you want to.
}
@Override
public void afterTextChanged(Editable s) {
}
});
0
您可以嘗試如下:
new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(afterFormat){
afterFormat = false;
return;
}
afterFormat = true;
// TODO format digits
......
}
+0
我已經嘗試過,但這種方法進入循環和鍵盤掛起 –
0
你可以通過輸入濾波器設置爲文本字段實現這一目標。
private InputFilter myFilter = new InputFilter(){
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
//your code to modify the input text.
return modified_input;
}
};
editText.setFilters(new inputFilterp[]{})
0
這是一個方法,通過它可以實現通過addTextChangedListener
或類似的東西,即
- 監視器文字變化..
當你得到的字符串,對於迭代它
0
直到它達到八位數 。while (string.length() < 8) { string = "0" + string; }
所需格式的模式字符串與
String.format()
。String.format("%s.%s,%s", string); // pattern you want
因此,這裏是全碼:
edit.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
text.setText("");
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
String string = s.toString();
if (string.length() < 8) {
while (string.length() < 8) {
string = "0" + string;
}
}
text.setText(String.format("%s.%s,%s", string.substring(0, 3), string
.substring(3, 6), string.substring(6, 8)));
}
});
相關問題
- 1. Android編輯文本 - 在「文本選擇模式」中輸入
- 2. 用戶在「編輯」文本中輸入URL onClick按鈕
- 3. 無法在Android編輯文本中輸入波斯語數字
- 4. 以貨幣格式更改編輯文本的輸入
- 5. 當我輸入gedit時運行不同的文本編輯器?
- 6. 當用戶輸入數據時設置文本字段的格式
- 7. JEditable:編輯前的格式編號
- 8. 在Java中編輯輸入號碼本身時的信用卡檢測(如預測)(輸入4位數字後)?
- 9. 當焦點不在div編輯器中時,將文本插入編輯器
- 10. 在編輯框中輸入文字時需要啓用按鈕
- 11. 在編輯器中輸入美國電話號碼格式時的格式號碼
- 12. 限制輸入在編輯文本
- 13. 在用戶輸入時格式化文本字段
- 14. 在Android中的編輯文本中輸入文本結尾
- 15. 如何在編輯輸入後編輯用戶看到的輸入內容?
- 16. 限制用戶在編輯文本字段中只輸入5行
- 17. 編輯文本上的模糊輸入
- 18. 「編輯」用戶文本?
- 19. 如何在用戶編輯單元格文本時以編程方式編輯DataGridView單元格中的光標到文本的開頭?
- 20. 當您輸入文本框格式中的數字
- 21. 如何從emulater刪除默認的關鍵字時,輸入用戶在編輯文本的文本
- 22. 輸入視圖設置爲文本字段時禁用文本編輯
- 23. 如何在android中輸入文本時在編輯文本中檢查值?
- 24. 當用戶在CKEditor中切換編輯模式時檢測到
- 25. 用戶輸入自定義控件(文本編輯器)
- 26. 爲什麼在用戶開始輸入時不編輯文本改變dp?
- 27. 使用富文本編輯器時的輸入驗證
- 28. 處理輸入按鍵編輯文本
- 29. 無法輸入富文本編輯器
- 30. Fabric.js通過輸入編輯文本
做你想做的所有零接受特定的字符串後? – Mohit
爲什麼在輸入三位數時沒有'0'? – Mohit
在x,xx中可以有0個。 –