Rohodude
Rohodude

Reputation: 495

How to get Spinner Selected Item in Android

I am making a currency converter with two spinners. I want to make an "if" function using the values of the spinner's selected item like below.

    @Override
    public void onClick(View v) {
        if (spinner1.getSelectedItem()=="Dollars" && spinner2.getSelectedItem()=="Euros") {
            convertDollarstoEuros();
        }
        if (spinner1.getSelectedItem()=="Euros" && spinner2.getSelectedItem()=="Euros") {
            convertEurostoEuros();
        }
    Toast.makeText(MainActivity.this,
            "OnClickListener : " + 
                    "\nSpinner 1 : "+ String.valueOf(spinner1.getSelectedItem()) + 
                    "\nSpinner 2 : "+ String.valueOf(spinner2.getSelectedItem()),
                Toast.LENGTH_SHORT).show();
        }

The problem is that the toast is showing, but the currencies aren't converting. The toast part is working, but the spinner part isn't. Any help would be greatly appreciated. Here is my LogCat:

enter image description here

Upvotes: 1

Views: 17573

Answers (3)

Vinay Ganesh
Vinay Ganesh

Reputation: 1

Check whether you called the id correctly or not? When I was working when improper id was called this exception used to arise. For eg In TextView, findViewById(R.id.textView1) but in xml file we may have set it to textView2.

Upvotes: 0

Gauthier Boaglio
Gauthier Boaglio

Reputation: 10272

Try this :

if (spinner1.getSelectedItem().toString().equals("Dollars") && spinner2.getSelectedItem().toString().equals("Euros")
...

getSelectedItem() returns an Object . info . So you have to get the corresponding string first. Then java compares strings using equals().

Upvotes: 6

Ahmad
Ahmad

Reputation: 72673

if (spinner1.getSelectedItem()=="Dollars" && spinner2.getSelectedItem()=="Euros") {

You can't compare Strings like that. You have to use the equals() method to compare them. Use this:

if (spinner1.getSelectedItem().toString().equals("Dollars") && spinner2.getSelectedItem().toString().equals("Euros")) {}

Upvotes: 1

Related Questions