I have created three spinners programatically. I want only one spinner item value should be selected and other spinners will be set default value as "select
".
Example:
If user selects item from spinner1
then spinner2
and spinner3
will have default value as "Select
" and goes on.
For event handling, have written this custom listener:
OnExItemSelectedListener onItemSelectedListner = new OnExItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,int pos, long id) {
Log.e("selected","test");
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Log.e("nothing","test");
}
@Override
public void typeSelected(Spinner customSpinner,int type,int position) {
if (type == 1) {
if(spinner1 !=null)
{
spinner1 .setSelection(position);
spinner2 .setSelection(-1);
spinner3 .setSelection(-1);
}
if(spinner1Txt!=null)
spinner1Txt.setText( ""+customSpinner.getItemAtPosition(position));
if(spinner2Txt!=null)
spinner2Txt.setText("Select card");
if(spinner3Txt!=null)
spinner3Txt.setText("Select card");
}
else if (type == 2) {
if(spinner2 !=null)
{
spinner2 .setSelection(position);
spinner1 .setSelection(-1);
spinner3 .setSelection(-1);
}
if(spinner2Txt!=null)
spinner2Txt.setText( ""+customSpinner.getItemAtPosition(position));
if(spinner1Txt!=null)
spinner1Txt.setText("Select card");
if(spinner3Txt!=null)
spinner3Txt.setText("Select card");
}
else if (type == 3) {
if(spinner3 !=null)
{
spinner3 .setSelection(position);
spinner2 .setSelection(-1);
spinner1 .setSelection(-1);
}
if(spinner3Txt!=null)
spinner3Txt.setText("Select card");
if(spinner2Txt!=null)
spinner2Txt.setText("Select card");
if(spinner1Txt!=null)
spinner1Txt.setText(""+customSpinner.getItemAtPosition(position));
}
}
};
Problem with above code is: If user have selected item at position 0 for spinner1 then next time user is unable to select item at same position for spinner2 and vice versa.