Android TextWatcher beforeTextChanged проблема - PullRequest
0 голосов
/ 26 июня 2019

в моем приложении у меня есть много текста для редактирования, и я реализовал для них textWatcher. Я хочу, чтобы они увеличивали и уменьшали число textView, но я могу только увеличить его

Я пытался проверить, больше ли старый текст, чемновый текст и уменьшите номер textview, но он возвращает false каждый раз

мой код:

editText.addTextChangedListener(new TextWatcher() {

                            String oldText = "";

                            @Override
                            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                                this.oldText = s.toString();

                            }

                            @Override
                            public void onTextChanged(CharSequence s, int start, int before, int count) {


                            }

                            @Override
                            public void afterTextChanged(Editable s) {
                                if (!editText.getText().toString().equals("")) {
                                    int price = Integer.parseInt(editText.getText().toString()) * price_db;
                                    productPrice.setText(price + "");

                                    int totalPrice_n = Integer.parseInt(totalPrice.getText().toString());

                                    int min = Integer.parseInt(editText.getText().toString()) - Integer.parseInt(oldText);

                                    if(Integer.parseInt(editText.getText().toString()) > Integer.parseInt(oldText)){
                                        totalPrice.setText((totalPrice_n + min * price_db) + "");

                                    }else{
                                        totalPrice.setText((totalPrice_n - min * price_db) + "");
                                    }




                                }
                            }
                        });

моя проблема заключается в том, что если условие только возвращает false и переходит к другой части, также мой по умолчанию EditTextтекст установлен в 0, поэтому я думаю, что beforeTextChanged принимает только 0 и проверяет, больше ли новый текст чем 0

, я изменяю текст editText с помощью 2 кнопок (+, -) и хочу, когда я нажимаю на кнопку +, чтобыувеличить номер TextView, а также, когда я нажимаю на кнопку -, чтобы уменьшить номер TextView, но он увеличивается только, я не знаю, почему

1 Ответ

1 голос
/ 26 июня 2019

Замени мой код своим кодом и проверь, чувак !!!:)

editText.addTextChangedListener(new TextWatcher() {

                        String oldText = "";

                        @Override
                        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                            this.oldText = s.toString();

                        }

                        @Override
                        public void onTextChanged(CharSequence s, int start, int before, int count) {


                        }

                        @Override
                        public void afterTextChanged(Editable s) {
                            if (!editText.getText().toString().equalsIgnoreCase("")) 
            {
                int amount=Integer.parseI`enter code here`nt(editText.getText().toString());

                int price = Integer.parseInt(editText.getText().toString()) * price_db;

                int totalPrice_n = Integer.parseInt(totalPrice.getText().toString());

                productPrice.setText(price);                                    

                                int min = amount - Integer.parseInt(oldText);

                if(Integer.parseInt(oldText) > 0)
                {
                    if(amount > Integer.parseInt(oldText)){
                                        totalPrice.setText((totalPrice_n + min * price_db));
                                }else{
                                    totalPrice.setText((totalPrice_n - min * price_db));
                                }
                              }
                                else
                Toast.makeText(context,"old text is 0",Toast.LENGTH_LONG).show();
                            }
                        }
                    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...