Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何格式化edittext(android)_Android_Android Edittext - Fatal编程技术网

如何格式化edittext(android)

如何格式化edittext(android),android,android-edittext,Android,Android Edittext,我需要格式化一个EditText来添加一个点 当输入超过3个数字时,在第一个数字后加上点(如:1.000) 但是当输入的数字超过4个时,在第二个数字后面加上点(如:10.000) 我已经尝试了添加文本更改列表,但没有成功。此算法用于在末尾添加数字并移动点,如下一个示例: 你一开始只有0.00 插入1并具有0.01 插入5和0.15 插入9和1.59 尝试修改代码并使其适应您的需要 youtEditText.addTextChangedListener( new TextWatcher() {

我需要格式化一个
EditText
来添加一个点

当输入超过3个数字时,在第一个数字后加上点(如:1.000)

但是当输入的数字超过4个时,在第二个数字后面加上点(如:10.000)


我已经尝试了添加文本更改列表,但没有成功。

此算法用于在末尾添加数字并移动点,如下一个示例:

你一开始只有0.00 插入1并具有0.01 插入5和0.15 插入9和1.59

尝试修改代码并使其适应您的需要

youtEditText.addTextChangedListener( new TextWatcher() {
            boolean mEditing = false;

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

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

            public void afterTextChanged(Editable s) {
                if(!mEditing) {
                    mEditing = true;
                    String digits = s.toString().replaceAll("\\D", "");
                    NumberFormat nf = new DecimalFormat( "#,##0.00" );
                    try{
                        String formatted = nf.format(Double.parseDouble(digits)/100);
                        s.replace(0, s.length(), formatted);
                    } catch (NumberFormatException nfe) {
                        s.clear();
                    }
                    mEditing = false;
                }
            }
        });
另一件事是,您需要将焦点放在文本的末尾,您可以使用下一个代码:

yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if(hasFocus){
                    amount.setSelection(amount.getText().length());
                }
            }
        }); 

我希望这能对您有所帮助。

您应该向我们展示您的文本监视程序的代码。我猜你有点不对劲。你想要10万还是10万?是最后3位在
之后,还是5位以上的数字仍应在前两位之后?嗨,我总是希望点后面只有3个零。1.000 10.000 100.000我试过了,但不起作用。。我总是只想要点后面的3个零。1.000 10.000 100.000谢谢