I want the spinner displays ImageView+TextView, so I create two
classes as below:
    public class AlbumSpinnerItem extends LinearLayout {
        private ImageView mAlbumType;
        private TextView mAlbumName;

        public AlbumSpinnerItem(Context context, String text, int
resourceId) {
            super(context);

            this.setOrientation(HORIZONTAL);

            this.mAlbumType = new ImageView(context);
            this.mAlbumType.setImageResource(resourceId);

            this.mAlbumName = new TextView(context);
            this.mAlbumName.setText(text);

            // Add child views to this object
            LinearLayout.LayoutParams param1 = new
LinearLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
            param1.gravity = Gravity.LEFT;
            this.addView(this.mAlbumType, param1);

            LinearLayout.LayoutParams param2 = new
LinearLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
            param2.gravity = Gravity.RIGHT;
            this.addView(this.mAlbumName, param2);
        }
    }

    public class AlbumSpinnerAdapter extends
ArrayAdapter<AlbumSpinnerItem> {
        Context c;
        List<AlbumSpinnerItem> s;

                public AlbumSpinnerAdapter(Context context, int 
textViewResourceId,
                                List<AlbumSpinnerItem> objects) {
                        super(context, textViewResourceId, objects);
                        c = context;
                        s = objects;
                }

                @Override
                public View getDropDownView(int position, View convertView,
                                ViewGroup parent) {
                        if (position<s.size())
                                return s.get(position);
                        else
                                return null;
                }

                @Override
                public View getView(int position, View convertView, ViewGroup
parent) {
                        if (position<s.size())
                                return s.get(position);
                        else
                                return null;
                }

                @Override
                public int getCount() {
                        return s.size();
                }
    }

But I get the following error information:
10-07 16:25:42.253: ERROR/AndroidRuntime(1146): Uncaught handler:
thread main exiting due to uncaught exception
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):
java.lang.ClassCastException: android.view.ViewGroup$LayoutParams
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.ListView.measureHeightOfChildren(ListView.java:1104)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.ListView.onMeasure(ListView.java:1045)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.View.measure(View.java:6621)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2791)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:
890)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.LinearLayout.measureVertical(LinearLayout.java:347)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.LinearLayout.onMeasure(LinearLayout.java:275)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.View.measure(View.java:6621)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2791)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:
890)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.LinearLayout.measureVertical(LinearLayout.java:347)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.LinearLayout.onMeasure(LinearLayout.java:275)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.View.measure(View.java:6621)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2791)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.FrameLayout.onMeasure(FrameLayout.java:208)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.View.measure(View.java:6621)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2791)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.widget.FrameLayout.onMeasure(FrameLayout.java:208)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.View.measure(View.java:6621)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.ViewRoot.performTraversals(ViewRoot.java:620)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.view.ViewRoot.handleMessage(ViewRoot.java:1103)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.os.Handler.dispatchMessage(Handler.java:88)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.os.Looper.loop(Looper.java:123)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
android.app.ActivityThread.main(ActivityThread.java:3742)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
java.lang.reflect.Method.invokeNative(Native Method)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
java.lang.reflect.Method.invoke(Method.java:515)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:739)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497)
10-07 16:25:42.321: ERROR/AndroidRuntime(1146):     at
dalvik.system.NativeStart.main(Native Method)

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to