Harni
Harni

Reputation: 11

show TextView text depending on an answer

I am very new to this sort of thing and am trying to teach myself but have gotten stuck here. I am writing an app which will calculate the size battery required. The calculator side of things i have done and it is working however i want to add a feature that when the answer is displayed, it will tell you what part number you need for the battery required. I have tried to work this out myself and failed miserably so i am hoping someone may be able to point me in the right direction

The answer from the battery calculator shows in ahresult. what i want is battreq to show the part number required for the correct size battery. so for example, if the calculator showed that a 2.43Ah battery was required, battreq would show "A 3.2ah battery is required" as that is the next size available.

ahresult = (TextView) findViewById(R.id.ahresult);

        battreq.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                Integer.parseInt(ahresult.getText().toString());
                if (ahresult.equals(>= "0.00" && <=  "1.20")){
                    battreq.setText("A 1.2Ah battery is required");
                }
                else if (ahresult.equals (>= "1.21 && <= 2.10")){
                    battreq.setText("A 2.1Ah battery is required");
                }
                else if (ahresult.equals (>= "2.11 && <= 3.20")){
                    battreq.setText("A 3.2Ah battery is required");
                }
              // so on and so on with different battery sizes
            }

Here is my (poor) effort at having a go but i am getting illegal start of expression.

Could someone guide me in the right direction please?

EDIT: Still seem to be having issues with this despite the help here. Below is the updated code. Have i got anything wrong here?

ahresult.addTextChangedListener(new TextWatcher() {

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

                double result = Double.parseDouble(ahresult.getText().toString());

                if (ahresult.equals(result >= 0.001 && result <=1.200 )) {
                    battreq.setText("1.2Ah req");

                }
                else if (ahresult.equals(result >= 1.201 && result <=2.100 )) {
                    battreq.setText("2.1Ah req");
                }
            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

Upvotes: 0

Views: 132

Answers (2)

tahsinRupam
tahsinRupam

Reputation: 6396

Firstly, you should add addTextChangedListener to ahresult instead of battreq.

Secondly, you have to parse the changed text s to Double then compare within your desired range:

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

    Double result = Double.parseDouble(s.toString());

   if (ahresult.equals(result >= 0.00 &&  result <=  1.20)){
       battreq.setText("A 1.2Ah battery is required");
   }
   else if (ahresult.equals (result>= 1.21 && result <= 2.10)){
       battreq.setText("A 2.1Ah battery is required");
   }
   else if (ahresult.equals (result>= 2.11 && result <= 3.20)){
       battreq.setText("A 3.2Ah battery is required");
   }
   // so on and so on with different battery sizes
}

Upvotes: 1

JaFer
JaFer

Reputation: 213

You need change this

battreq.addTextChangedListener(new ...

With this

ahresult.addTextChangedListener(new ...

You need listen the ahresult's value and change the battery needed.

In the "onTextChanged" the "CharSequence s" param is the ahresult's text

Upvotes: 1

Related Questions