That's a bit strange.
According to the code of spinner:
@Override
public boolean performClick() {
boolean handled = super.performClick();
if (!handled) {
handled = true;
Context context = getContext();
final DropDownAdapter adapter = new
DropDownAdapter(getAdapter());
AlertDialog.Builder builder = new
AlertDialog.Builder(context);
if (mPrompt != null) {
builder.setTitle(mPrompt);
}
mPopup = builder.setSingleChoiceItems(adapter,
getSelectedItemPosition(), this).show();
}
return handled;
}
public void onClick(DialogInterface dialog, int which) {
setSelection(which);
dialog.dismiss();
mPopup = null;
}
if the AdapterView is not handling the performClick then a new alert
dialog that derives it's views from your adapter is created, and the
spinner is the onClick listener.
So when you click an item is should have dismissed the dialog.
do you have the source code to put break points and debug it ?
On Dec 6, 11:13 am, Danny Schimke <[email protected]>
wrote:
> Hi,
>
> I googled a long time and still got no solution for my issue. I customized
> my spinner view and the spinners dropdown menu. Within the spinner itself I
> show a color representation and a simple text (I kicked some attributes to
> save space in this post):
>
> spinner_color_item.xml
>
> > <?xml version="1.0" encoding="utf-8"?>
> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
> > <View android:id="@+id/vColorCode" />
> > <TextView android:id="@+id/tvColorName" />
> > </LinearLayout>
>
> My dropdown menu (one item element in the menu) looks like this:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
> > <View android:id="@+id/vColorCode" />
> > <TextView android:id="@+id/tvColorName" />
> > <RadioButton android:id="@+id/rbChooseColor" />
> > </LinearLayout>
>
> Everything looks fine, the spinner is shown as expected and the dropdown
> menu items look like I wanted. I am using a customized ArrayAdapter, for
> models that look like:
>
> public class ColorItem {
>
> > private String colorName;
> > private int colorValue;
> > private boolean selected;
> > public ColorItem() {
> > }
> > public ColorItem(String colorName, int colorValue) {
> > this.colorName = colorName;
> > this.colorValue = colorValue;
> > }
> > // some methods (getter and setter)
> > }
>
> The code within my onCreate method looks like:
>
> spiColor = (Spinner) findViewById(R.id.spiGroupColor);
>
> SpinnerColorAdapter colorAdapter = new SpinnerColorAdapter(this,
>
>
>
> > android.R.layout.simple_spinner_item, prepareColorItems());
> > spiColor.setAdapter(colorAdapter);
> > OnItemSelectedListener l = new OnItemSelectedListener() {
> > @Override
> > public void onItemSelected(AdapterView<?> arg0, View view, int
> > position, long id) {
> > // never called. Why?!
> > if (spinnerInitialized) {
> > }
> > spinnerInitialized = true;
> > }
> > @Override
> > public void onNothingSelected(AdapterView<?> arg0) {
> > }
> > };
> > spiColor.setOnItemSelectedListener(l);
>
> I overwrote the getDropDownView method of my custom adapter. The view is
> created successfully, how I defined in xml, but I want to close the dropdown
> menu after selected one item, so I want to close it with clicking the
> radiobutton of one item. Set the selection works very well, but I have to
> exit the menu pressing escape in my emulator.
>
> Hope someone can help, I need a way to close the dropdown menu
> programatically. Does anybody have the same problem?
>
> Thanks a lot!
> -Danny Schimke
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en