Android EditText输入在我们输入时改变(数字)

时间:2015-02-10 09:17:36

标签: android

我正在制作一个可以计算payOnloan,预付费等的应用程序(我主管的3个月项目,我有一个实习生)。但是我在某个时候陷入困境。我想要一个EditText,它会在哪里在我输入值时自动更改其值,在本例中为数字。例如:

类型1 在EditText输出中 1 当我们输入10 在EditText输出中 10 当我们输入100 在EditText输出中 100 当我们键入1.000 在EditText输出中 1.000 当我们键入10.000 在EditText输出中 10.000 等等..(直到1.000.000.000.000) 注意:对于一个EditText,我的意思是我们给它输入,输出也在同一个edittext上

是否可以这样做?我已经尝试了几乎所有相关的数字分隔符或十进制格式或货币转换。但这些都不起作用。

我无法附上图片文件sry,

提前感谢,

此致 乔治

2 个答案:

答案 0 :(得分:2)

所以如果我理解正确的话,你有一个编辑文本框,你输入的任何内容都需要反映在其他视图中?如果是这种情况,那么您正在寻找文本观察器。

以下是文本观察器的示例:

final TextWatcher mTextEditorWatcher = new TextWatcher(){
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {


        }

        public void onTextChanged(CharSequence s, int start, int before, int count) {
            yourView.setText(yourEditText.getText().toString()); 
        }

        public void afterTextChanged(Editable s) {

        }
    };

注意:public void onTextChanged 但要注意空值!

检查textChange上文本观察器中的号码长度,并使用以下内容添加小数:

  DecimalFormat df = new DecimalFormat("#.00");
  String inputFormated = df.format(yourEditText.getText.toString());
  System.out.println(inputFormated);

答案 1 :(得分:2)

您是如何定义小数格式的?

尝试这样的事情。

DecimalFormat formattedStuff = new DecimalFormat("#,###,###,###,##0");
String recieved = yourEditText.getText().toString();
yourEditText.setText(formattedStuff.format(recieved));