第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

在多個(gè) EditText 上添加值并在每個(gè) textchange 上獲取總計(jì)

在多個(gè) EditText 上添加值并在每個(gè) textchange 上獲取總計(jì)

呼喚遠(yuǎn)方 2022-05-21 19:49:34
EditText如何在不使用Button但僅使用 TextWatcher 的onTextChanged()方法的情況下對我的倍數(shù)進(jìn)行總和。假設(shè)這是我的布局:編輯文本1 = 5編輯文本2 = 5編輯文本3 = 5編輯文本4 = 5總計(jì) = 20等等并得到它的總數(shù)?當(dāng)' 的值發(fā)生變化時(shí),總數(shù)應(yīng)該是變化的。EditText我已閱讀此答案。但我不能在我的程序上很好地執(zhí)行它。這是我的布局
查看完整描述

2 回答

?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊

你需要使用一個(gè)TextWatcher()


而不是使用 5TextWatcher()你可以只使用一個(gè)來管理它TextWatcher()


試試這個(gè)


如果您的所有 4 個(gè)四個(gè)都不為空,則使用以下答案,edittext那么它將計(jì)算值的editext總和


public class MainActivity extends AppCompatActivity {



    EditText edtOne, edtTwo, edtThree, edtFour;

    TextView tvResult;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        edtOne = findViewById(R.id.edtOne);

        edtTwo = findViewById(R.id.edtTwo);

        edtThree = findViewById(R.id.edtThree);

        edtFour = findViewById(R.id.edtFour);


        tvResult = findViewById(R.id.tvResult);


        edtOne.addTextChangedListener(textWatcher);

        edtTwo.addTextChangedListener(textWatcher);

        edtThree.addTextChangedListener(textWatcher);

        edtFour.addTextChangedListener(textWatcher);


    }


    TextWatcher textWatcher = 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) {


            if (!TextUtils.isEmpty(edtOne.getText().toString().trim())

                    || !TextUtils.isEmpty(edtTwo.getText().toString().trim())

                    || !TextUtils.isEmpty(edtThree.getText().toString().trim())

                    || !TextUtils.isEmpty(edtFour.getText().toString().trim())

                    ) {



                int answer = Integer.parseInt(edtOne.getText().toString().trim()) +

                        Integer.parseInt(edtTwo.getText().toString().trim()) +

                        Integer.parseInt(edtThree.getText().toString().trim()) +

                        Integer.parseInt(edtFour.getText().toString().trim());


                Log.e("RESULT", String.valueOf(answer));

                tvResult.setText(String.valueOf(answer));

            }else {

            tvResult.setText("");

        }

        }


        @Override

        public void afterTextChanged(Editable editable) {


        }

    };


}

更新

如果您想計(jì)算所有的值editext即使您的編輯文本為空,也請嘗試以下操作TextWatcher()


TextWatcher textWatcher = 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) {


        if (!TextUtils.isEmpty(edtOne.getText().toString().trim())

                || !TextUtils.isEmpty(edtTwo.getText().toString().trim())

                || !TextUtils.isEmpty(edtThree.getText().toString().trim())

                || !TextUtils.isEmpty(edtFour.getText().toString().trim())

                ) {



            int firtValue = TextUtils.isEmpty(edtOne.getText().toString().trim()) ? 0 : Integer.parseInt(edtOne.getText().toString().trim());

            int secondValue = TextUtils.isEmpty(edtTwo.getText().toString().trim()) ? 0 : Integer.parseInt(edtTwo.getText().toString().trim());

            int thirdValue = TextUtils.isEmpty(edtThree.getText().toString().trim()) ? 0 : Integer.parseInt(edtThree.getText().toString().trim());

            int forthValue = TextUtils.isEmpty(edtFour.getText().toString().trim()) ? 0 : Integer.parseInt(edtFour.getText().toString().trim());


            int answer = firtValue + secondValue + thirdValue + forthValue;


            Log.e("RESULT", String.valueOf(answer));

            tvResult.setText(String.valueOf(answer));

        }else {

            tvResult.setText("");

        }

    }


    @Override

    public void afterTextChanged(Editable editable) {


    }

};


查看完整回答
反對 回復(fù) 2022-05-21
?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊

我將告訴你如何去做,但我不會將解決方案作為總代碼發(fā)布。


首先,定義整數(shù),即編輯文本計(jì)數(shù)的數(shù)量。如果有 4 個(gè)編輯文本,用 like 定義 4 個(gè)整數(shù)int first = 0, second = 0, third = 0, fourth = 0;


然后,將單獨(dú)的文本觀察器添加到您的編輯文本中,并在您的afterTextChanged方法上,通過使用從字符串中獲取整數(shù)值,Integer.parseInt(Editable s.getText.toString())并確保輸入是可轉(zhuǎn)換的,否則您將獲得一個(gè)NumberFormatException. 然后,將此值分配給相關(guān)的編輯文本,例如在您第一次使用編輯文本時(shí)first = Integer.parse(s.getText().toString())。


創(chuàng)建一個(gè)使用這些變量在文本視圖上顯示的函數(shù)。例如:


private void showResult() {

    textView.setText(String.valueOf(first + second + third + fourth));

}

然后,在每個(gè) afterTextChanged 方法調(diào)用此函數(shù)以顯示總金額。


查看完整回答
反對 回復(fù) 2022-05-21
  • 2 回答
  • 0 關(guān)注
  • 151 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號