事件专注于EditText

时间:2014-04-09 11:28:26

标签: java android events

我有一个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"再次。请帮助我,对不起,如果我的语法不好。

1 个答案:

答案 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