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