I don't want it to be dropdown. I want on click of spinner, to be open him dialogbox.
How can this be done?
What I implemented below ontouch of spinner I open dialog...however it also opens dropdown as well.
I want to disable dropdown and implement it on click..
final Spinner serverSpinner = (Spinner) findViewById(R.id.serverSpinner);
String[] array_spinner=new String[2];
array_spinner[0]="hoho";
array_spinner[1]="lala";
ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, array_spinner);
serverSpinner.setAdapter(adapter);
serverSpinner.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
// TODO Auto-generated method stub
showSpinner();
return false;
}
});
protected void showSpinner()
{
AlertDialog.Builder b = new Builder(this);
String[] options = {"hoho","lala"};
b.setTitle("Select an option" );
b.setSingleChoiceItems(options, -1,new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
switch(which){
case 0:
{
break;
}
case 1:
{
break;
}
}
}
});
b.setPositiveButton("CANCEL", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
b.show();
}
Here is an Spinner subclass which overrides performClick() to show a dialog instead of a dropdown. No XML required. Give it a try, let me know if it works for you.
public class DialogSpinner extends Spinner {
public DialogSpinner(Context context) {
super(context);
}
@Override
public boolean performClick() {
new AlertDialog.Builder(getContext()).setAdapter((ListAdapter) getAdapter(),
new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
setSelection(which);
dialog.dismiss();
}
}).create().show();
return true;
}
}
For more information read this article: How To Make Android Spinner Options Popup In A Dialog
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With