i'm not sure regardin of why it doesn't call what it should. First of all you should know that the code including the layouts and resources of the SDK are available to you online here:http:// android.git.kernel.org/?p=platform/frameworks/base.git;a=tree;f=core/ res/res;hb=donut-release2, this is a link to donut version resources.
the drop down and the view supposed to be different, one is for the spinner itself, for the single item that is displayed, the other is for the items in the list one the spinner is 'opened'. I urge you to take a look on the theme.xml and styles.xml and layout directory to see which of the layouts is used originally in the Spinner class and try to build your layouts from there. I had in my blod a zip with the source for 1.6, 2.1 and 2.2 though you can still view them online i think i' can find the link: http://www.devfrustrated.com/devBlog/browsing-android-source-code-in-eclipse/ in there in the end you got 3 zips, in most cases you can debug the code... in the evening i'll have some more time i might be able to look into it so you can send me the layouts :-) On Dec 6, 1:49 pm, Danny Schimke <[email protected]> wrote: > Hi poohtbear, > > I have no android source and I am using windows as development platform. As > far as I read I am not able to get the source under windows?! > > But based on your code I noticed, that the XML of my Spinner view and its > drop down XML are different. The drop down XML has an additional > RadioButton. If I use the same UI as I am using for my Spinner it works, but > it does not look very well... It seems the onClick() of the spinner is never > called. If I call performClick() when click on the RadioButton the drop down > menu opens again. A dismiss is not called, also when the drop down is shown. > > Is there a way to use the default dropdown UI with radio buttons and fill it > up with custom view elements on the left side? > > Thanks a lot! > -Danny Schimke > > 2010/12/6 poohtbear <[email protected]> > > > 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]<android-developers%[email protected]> > > For more options, visit this group at > >http://groups.google.com/group/android-developers?hl=en -- 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

