【问题标题】:Edit Text Auto Calculate编辑文本自动计算
【发布时间】:2017-05-10 20:18:19
【问题描述】:

我正在创建一个计算混凝土体积的应用程序。我有 3 个 editText 字段,但我希望其中一个文本字段在输入数据时自动计算从英尺到英寸。为此,您只需将字段中的任何数字除以 12,但我如何编写代码来做到这一点?

这是我的 Java 代码:

public class Calculation extends Activity implements View.OnClickListener {

    private Button aButton;
    private TextView tvAnswer;
    private EditText input1, input2, input3;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calculation);

        tvAnswer = (TextView) findViewById(R.id.answer);
        input1 = (EditText) findViewById(R.id.length);
        input2 = (EditText) findViewById(R.id.width);
        input3 = (EditText) findViewById(R.id.thickness);
        aButton = (Button) findViewById(R.id.button);
        aButton.setOnClickListener(this);
    }

    public void onClick(View v) {

        Double inputt1 = input1.getText().toString().equals("") ? 0 : Double.valueOf(input1.getText().toString());
        Double inputt2 = input2.getText().toString().equals("") ? 0 : Double.valueOf(input2.getText().toString());
        Double inputt3 = input3.getText().toString().equals("") ? 0 : Double.valueOf(input3.getText().toString());

        switch (v.getId()){
            case R.id.button:
       tvAnswer.setText(Double.toString(inputt1*inputt2*inputt3));
            break;
        default:
            break;

【问题讨论】:

    标签: java android


    【解决方案1】:

    我希望其中一个文本字段从英尺计算到英寸 输入数据时自动进行

    你需要的是TextWatcher

    例子

     public TextWatcher mTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
            }
    
            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
            }
    
            @Override
            public void afterTextChanged(Editable editable) {
                // do calculation here
                calculation();
            }
        };
    

    onCreate方法中,添加这个

    input1.addTextChangedListener(mTextWatcher);
    

    【讨论】:

    • 我明天试试这个并给出反馈​
    【解决方案2】:

    你必须使用 TextWatcher 来编辑你的文本。

    input1.addTextChangedListener(new TextWatcher() {
     @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }
            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    
            }
    
            @Override
            public void afterTextChanged(Editable editable) {
                // Call method to calculate your value same way you do in onClick()
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-27
      • 2019-08-28
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 2011-11-03
      相关资源
      最近更新 更多