我必须格式化编号,因为用户在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. 如何在jQuery中编辑文本输入样式可编辑
- 2. 当用户在编辑文本中输入值时的Android开始活动
- 3. Android编辑文本 - 在“文本选择模式”中输入
- 4. 分布式文本编辑器:多个用户同时编辑文本文件
- 5. 用户在“编辑”文本中输入URL onClick按钮
- 6. 无法在Android编辑文本中输入波斯语数字
- 7. 以货币格式更改编辑文本的输入
- 8. 当我输入gedit时运行不同的文本编辑器?
- 9. 编辑文本和按钮(当按下按钮时,应该在编辑文本域中输入值)
- 10. 当用户输入数据时设置文本字段的格式
- 11. 编辑文本用户输入文本框
- 12. UITextField数字格式化程序设置或编辑文本时
- 13. JEditable:编辑前的格式编号
- 14. 在Java中编辑输入号码本身时的信用卡检测(如预测)(输入4位数字后)?
- 15. 当焦点不在div编辑器中时,将文本插入编辑器
- 16. 我的编辑文字在输入文字时得到延长
- 17. 想要格式化编辑文本中的数字
- 18. 在编辑框中输入文字时需要启用按钮
- 19. 在编辑器中输入美国电话号码格式时的格式号码
- 20. 限制输入在编辑文本
- 21. 在Android中的编辑文本中输入文本结尾
- 22. 在用户输入时格式化文本字段
- 23. 当用户在文本字段中选择一个数字时,如何获取编辑文本字段
- 24. 如何在编辑输入后编辑用户看到的输入内容?
- 25. 限制用户在编辑文本字段中只输入5行
- 26. 如何在android中限制编辑文本的输入时间
- 27. 在GridView编辑上,“输入字符串的格式不正确”
- 28. 在文本输入框中输入编辑文本(红色星号)的必填符号
- 29. Drupal节点添加/编辑表格 - 表格中的文本输入字段
- 30. 编辑文本上的模糊输入
做你想做的所有零接受特定的字符串后? – Mohit
为什么在输入三位数时没有'0'? – Mohit
在x,xx中可以有0个。 –