我有一个EditText,其中EditText获得焦点,它改变了EditText的功能,当我失去对EditText的焦点时,它再次改变了函数。
这是我的源代码:
tambah = (EditText)rootView.findViewById(R.id.total);
tambah.setOnFocusChangeListener(new OnFocusChangeListener(){
@Override
public void onFocusChange(View arg0, boolean arg1) {
try {
if(..) //i want to check, i get focus
{...}else //if i loss focus, the textbox do something
{...}
} catch (Exception e) {
}
}
对于像我第一次点击edittext时的结果,edittext没有做任何事情。当我输入" 1000",并且我失去焦点时,编辑文本变为" 1.000"。但是当我再次点击edittext时,它变成" 1000"再次。请帮助我,对不起,如果我的语法不好。
答案 0 :(得分:0)
boolean flag = true;
tambah = (EditText)rootView.findViewById(R.id.about_header);
tambah.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
flag = !flag;
if(v == tambah && flag) {
//format your text to 1000 here
}
else if(v == tambah && !flag) {
//format your text to 1.000 here
}
}
});
编辑: 如果您需要一个简单的格式化程序,可以使用十进制格式化程序。
double d = 1.000;
DecimalFormat df1 = new DecimalFormat("#.###");
DecimalFormat df2 = new DecimalFormat("####");
String newD1 = df1.format(d); // 1.000
String newD2 = df2.format(d); // 1000