在Android中没有任何按钮或Onclick的情况下进行计算。在Android中使用TextWatcher进行实时计算

问题描述 投票:0回答:1

这里我将展示如何在real-time上添加两个或多个值而无需任何按钮或在Android中使用OnClick listener

android android-edittext calculation textwatcher android-textwatcher
1个回答
0
投票

首先,请查看您的XML或为此进行设计。然后将其粘贴到您的活动中。不要忘记在您的EditText中添加`android:inputType =“ number”。

 final EditText num1 = (EditText) findViewById(R.id.inp1);
    final EditText num2 = (EditText) findViewById(R.id.inp2);
    final EditText resu = (EditText) findViewById(R.id.res);

    num1.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        }

        @Override
        public void afterTextChanged(Editable arg0) {
            try {


                String mynum1 = num1.getText().toString();
                String mynum2 = num2.getText().toString();

                if ((mynum1 != "") && (mynum2 != "")) {
                    int res = Integer.parseInt(mynum1) + Integer.parseInt(mynum2);
                    resu.setText(Integer.toString(res));
                }
            } catch (Exception e) {
                Log.d("ERROR", "Exxeption: " + e);

            }
        }
    });

    num2.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        }

        @Override
        public void afterTextChanged(Editable arg0) {
            try {
                String mynum1 = num1.getText().toString();
                String mynum2 = num2.getText().toString();

                if ((mynum1 != "") && (mynum2 != "")) {
                    int res = Integer.parseInt(mynum1) + Integer.parseInt(mynum2);
                    resu.setText(Integer.toString(res));
                }
            } catch (Exception e) {
                Log.d("ERROR", "Exxeption: " + e);
            }
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.