Reputation: 3822
I have an Activity with multiple Spinners in it (around 8-9). The code that I am using is as follows:
Spinner sp1, sp2, sp3, sp4, sp5;
sp1 = (Spinner) findViewById(R.id.spinner1);
sp2 = (Spinner) findViewById(R.id.spinner2);
sp3 = (Spinner) findViewById(R.id.spinner3);
sp4 = (Spinner) findViewById(R.id.spinner4);
sp5 = (Spinner) findViewById(R.id.spinner5);
sp1.setOnItemSelectedListener(this);
sp2.setOnItemSelectedListener(this);
sp3.setOnItemSelectedListener(this);
sp4.setOnItemSelectedListener(this);
sp5.setOnItemSelectedListener(this);
//Outside onCreate I'm using the following to handle the spinner Item Selected event.
@override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.spinner1:
Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
break;
case R.id.spinner2:
Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
break;
case R.id.spinner3:
Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
break;
case R.id.spinner4:
Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
break;
case R.id.spinner5:
Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
But the problem is I'm not getting any Toast
on selecting the item in any of the spinners. Any help would be appreciated. Thanks in advance.
Upvotes: 3
Views: 7604
Reputation: 521
Reusable onItemSelected method for multiple spinners.
public void onItemSelected(AdapterView<?> parent, View view,int pos, long id) {
switch (parent.getId()) {
case R.id.your_spinner_1_id:
// get the selected value of spinner 1
parent.getSelectedItem().toString();
break;
case R.id.your_spinner_2_id:
// do stuffs with your spinner 2
break;
default:
break;
}
}
Upvotes: 2
Reputation: 5494
package com.meta;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.Toast;
import com.meta.R;
public class SpinnerActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner sp1, sp2, sp3, sp4, sp5;
sp1 = (Spinner) findViewById(R.id.spinner1);
sp2 = (Spinner) findViewById(R.id.spinner2);
sp3 = (Spinner) findViewById(R.id.spinner3);
sp4 = (Spinner) findViewById(R.id.spinner4);
sp5 = (Spinner) findViewById(R.id.spinner5);
sp1.setOnItemSelectedListener(myListener);
sp2.setOnItemSelectedListener(myListener);
sp3.setOnItemSelectedListener(myListener);
sp4.setOnItemSelectedListener(myListener);
sp5.setOnItemSelectedListener(myListener);
}
OnItemSelectedListener myListener=new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switch (arg2) {
case 1:
Toast.makeText(SpinnerActivity.this,"Spinner 1", Toast.LENGTH_LONG).show();
break;
case 2:
Toast.makeText(SpinnerActivity.this, "Spinner 2", Toast.LENGTH_LONG).show();
break;
case 3:
Toast.makeText(SpinnerActivity.this, "Spinner 2", Toast.LENGTH_LONG).show();
break;
case 4:
Toast.makeText(SpinnerActivity.this,"Spinner 2", Toast.LENGTH_LONG).show();
break;
case 5:
Toast.makeText(SpinnerActivity.this, "Spinner 2", Toast.LENGTH_LONG).show();
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
};
}
Upvotes: 3