Search code examples
androidspinnertoast

Multiple Spinners in OnItemSelected only 1 Toast working?


Code for Spinner1 isn't working, followed the android studio tutorial for both so I don't understand why it doesn't work.

package com.example.keshav.szdxfcbjnm;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener  {

@Override

protected void onCreate(Bundle savedInstanceState) {
    //Creation of Two spinnners
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); //This spinner has the probem
    ArrayAdapter<CharSequence> adapr = ArrayAdapter.createFromResource(this,
            R.array.pets_array, android.R.layout.simple_spinner_dropdown_item);
    spinner1.setAdapter(adapr); 
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    spinner1.setOnItemSelectedListener(this); 
    spinner.setOnItemSelectedListener(this);
    Spinner spin = (Spinner) findViewById(R.id.spinner); 
           ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                   R.array.planets_array, android.R.layout.simple_spinner_item);
 //maybe the probem occurs here
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);




    }
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  switch(parent.getId()) {
      case R.id.spinner:
          String s = String.valueOf(parent.getItemAtPosition(position));
          EditText text = (EditText) findViewById(R.id.editText);
          text.setVisibility(View.INVISIBLE);
          Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
          if (s.equals("Mars")) {
              text.setVisibility(View.VISIBLE);

              break;
          }
      //Problem Lies Here
      case R.id.spinner1:
          String d = String.valueOf(parent.getItemAtPosition(position));
            Toast.makeText(this, d, Toast.LENGTH_SHORT);
          break;

      default:
          break;

  }


}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
   }

I'm a novice android developer so I apologize for the bad naming. With this code only spinner's toast is working. I was wondering if anyone could tell my why and show me how to correct it.


Solution

  • Inside your spinner1 case, you're not calling show() on the toast. Change this line:

    Toast.makeText(this, d, Toast.LENGTH_SHORT);
    

    to this:

    Toast.makeText(this, d, Toast.LENGTH_SHORT).show();