简体   繁体   English

当用户在editText中输入任何金额时如何附加$?

[英]How to append $ when user enter any amount into the editText?

I my application when user enter any numberic value in EditText then $ append() before text.当用户在EditText输入任何数字值然后在文本之前输入 $ append()时,我的应用程序。 Any help would be greatly appreciated...thankss a lot...任何帮助将不胜感激...非常感谢...

Try using a TextWatcher as follows:尝试使用TextWatcher如下:

EditText editbox = (EditText)findViewById(R.id.editText1);
editbox.addTextChangedListener(new TextWatcher(){

        @Override
        public void afterTextChanged(Editable s){

            if(s.toString().length() > 0 && s.toString().charAt(0) != '$'){
                StringBuilder b = new StringBuilder(s.toString());
                b = b.reverse();
                b.append('$');
                b = b.reverse();
                editbox.setText(b);
                editbox.setSelection(editbox.getText().length());
            }



            int counter = 0;
            for (int i = 0; i < s.toString().length(); i++) {
                if (s.toString().charAt(i) == '$') {
                    counter++;
                }
            }
            if (counter > 1) {
                String str = s.toString().replace("$", "").trim();
                str = str.replaceAll("\\s+", "");
                StringBuilder b = new StringBuilder(str);
                b = b.reverse();
                b.append('$');
                b = b.reverse();
                edit.setText(b);
                edit.setSelection(edit.getText().length());
            } else {

                int spaceCount = 0;

                for (int i = 0; i < s.toString().length(); i++) {
                    if (s.toString().charAt(i) == ' ') {
                        spaceCount++;
                    }
                }
                if (spaceCount > 0) {
                    String str = s.toString().replace("$", "").trim();
                    str = str.replaceAll("\\s+", "");
                    StringBuilder b = new StringBuilder(str);
                    edit.setText(b);
                    edit.setSelection(edit.getText().length());
                }
            }


        }
    });

Another approach would be to combine a TextWatcher with a regular expression of some sort.另一种方法是将TextWatcher与某种正则表达式结合起来。

Use the following code使用以下代码

ed.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
            if(ed.getText().toString().length()>1)
            {
                ed.setText("$"+ed.getText().toString());
            }

        }
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM