eclipseandroid:edittext输入将是其他edittext的输出



我有3个edittext,第一个用于输入价格,第二个用于输入百分比,第三个用于计算它们的输出。例如:第一次输入是100000,第二次输入是30,然后第三次编辑文本将自动填充30000。有可能做到吗?

提前感谢

问候,george

这是可能的。对此,您可以使用editText.addTextChangedListener(观察程序)。

EDIT1

    editText1 = (EditText) findViewById(R.id.editText1);
    editText2 = (EditText) findViewById(R.id.editText2);
    editText3 = (EditText) findViewById(R.id.editText3);
    editText2.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            String text1 = editText1.getText().toString();
            if (text1.length() != 0) {
                int input1 = Integer.valueOf(text1);
                int input2 = Integer.valueOf(s.toString());
                int output = (input1 * input2) / 100;
                editText3.setText(output + "");
            }
        }
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }
        @Override
        public void afterTextChanged(Editable s) {
        }
    });

添加TextWatcher

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) {
        //'calculatedPercentage' is the calculated value
        editText3.setText(calculatedPercentage);
    }
});

您可以在EditText中使用TextWatcher,并使用onTextChanged方法进行计算。

像这样设置TextWatcher:

EditText editText = (EditText) findViewById(R.id.edt1);
editText.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 arg0) {
        // TODO Auto-generated method stub
    }
});

最新更新