Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android TextWatcher beforeTextChanged问题_Android_Textview_Android Edittext_Android Textwatcher - Fatal编程技术网

android TextWatcher beforeTextChanged问题

android TextWatcher beforeTextChanged问题,android,textview,android-edittext,android-textwatcher,Android,Textview,Android Edittext,Android Textwatcher,在我的应用程序中,我有许多编辑文本,我为它们实现了textWatcher,我希望它们增加和减少textView的数量,但我只能增加它 我试图检查旧文本是否比新文本大,并减少textview编号,但每次都返回false 我的代码: editText.addTextChangedListener(new TextWatcher() { String oldText = ""; @Ove

在我的应用程序中,我有许多编辑文本,我为它们实现了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并转到else部分,我的EditText默认文本也设置为0,所以我认为beforeTextChanged只接受0,并检查新文本是否大于0


我用2个按钮(+,-)更改editText的文本,我希望当我单击+按钮时增加文本视图编号,当我单击-按钮时减少文本视图编号,但它只会增加文本视图编号,我不知道为什么用您的代码替换我的代码并检查dude!!!:)

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();
                            }
                        }
                    });