Android 重写EditText的onTextChange侦听器

Android 重写EditText的onTextChange侦听器,android,android-edittext,Android,Android Edittext,我想覆盖EditText的textchangelistener 示例场景: 我的输入:123 ,所需输出:1.23 我的输入:12340 ,所需输出:123.40 我的输入:0 ,所需输出:0.00 我的输入:1 ,所需输出:0.01您必须添加文本 EditText editText; editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChang

我想覆盖EditText的textchangelistener

示例场景:

我的输入:123 ,所需输出:1.23

我的输入:12340 ,所需输出:123.40

我的输入:0 ,所需输出:0.00

我的输入:1 ,所需输出:0.01

您必须添加文本

EditText editText;
    editText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
在ContextChanged方法中添加逻辑

String output = s.subSequence(s.length() - 3,
                        s.length() - 1).toString();
                output = s.subSequence(0, s.length() - 3).toString()
                        .toString()
                        + "." + output;
                Log.i(TAG, "Out Put ::" + output);
            }
试一试


如果要将123、12340打印为1、23、123、40,则在使用任何awnsers时必须除以100,小心不要将输出设置为
编辑文本的文本。否则监听器将再次被调用,并将启动一个无休止的循环。是的,先生,我最近遇到了这个错误。这就像堆栈溢出错误。谢谢你的提醒。:)谢谢你的回答。第一个代码工作得非常好。但第二个代码在某些情况下不起作用。无论如何,谢谢,我现在已经解决了我的问题。
float MyInput = 10;
String DesiredOutput = String.format("%.2f", MyInput ); // prints 10,00