Hi Jason,

Could you show me the code of the View you're returning, to see if
that'll work for me instead?

Thanks

On Nov 4, 2:14 am, Mark Wyszomierski <[EMAIL PROTECTED]> wrote:
> Hi Jason,
>
> Thanks for the help, I'll post the stack trace below. Maybe I'm
> creating the view incorrectly. I tried something like:
>
>     public class MyChildView extends LinearLayout
>     {
>         public MyChildView(Context context)
>         {
>             super(context);
>         }
>     }
>
>     // Inside my BaseExpandableListAdapter extended class:
>     public View getChildView(int groupPosition,
>                                          int childPosition,
>                                          boolean isLastChild,
>                                          View convertView,
>                                          ViewGroup parent)
>     {
>         MyChildView mcv = new
> MyChildView(MyAdapter.this.getContext());
>         mcv.setLayoutParams(new
> LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
> LayoutParams.WRAP_CONTENT));
>         mcv.setOrientation(LinearLayout.HORIZONTAL);
>         mcv.addView(new ImageView(...));
>         mcv.addView(new TextView(...));
>         return mcv;  // <-- exception after return.
>     }
>
> Returning a TextView like in the API sample works ok. Here's the stack
> trace:
>
> 11-04 02:01:23.602: ERROR/AndroidRuntime(190): Uncaught handler:
> thread main exiting due to uncaught exception
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):
> java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.ListView.setupChild(ListView.java:1646)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.ListView.makeAndAddView(ListView.java:1619)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.ListView.fillDown(ListView.java:601)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.ListView.fillSpecific(ListView.java:1189)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.ListView.layoutChildren(ListView.java:1454)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.AbsListView.onLayout(AbsListView.java:937)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.view.View.layout(View.java:5637)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.FrameLayout.onLayout(FrameLayout.java:294)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.view.View.layout(View.java:5637)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.LinearLayout.layoutVertical(LinearLayout.java:999)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.LinearLayout.onLayout(LinearLayout.java:920)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.view.View.layout(View.java:5637)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.FrameLayout.onLayout(FrameLayout.java:294)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.view.View.layout(View.java:5637)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.LinearLayout.layoutVertical(LinearLayout.java:999)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.LinearLayout.onLayout(LinearLayout.java:920)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.view.View.layout(View.java:5637)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.widget.FrameLayout.onLayout(FrameLayout.java:294)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.view.View.layout(View.java:5637)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.view.ViewRoot.performTraversals(ViewRoot.java:771)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.view.ViewRoot.handleMessage(ViewRoot.java:1103)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.os.Handler.dispatchMessage(Handler.java:88)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.os.Looper.loop(Looper.java:123)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> android.app.ActivityThread.main(ActivityThread.java:3742)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> java.lang.reflect.Method.invokeNative(Native Method)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> java.lang.reflect.Method.invoke(Method.java:515)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> com.android.internal.os.ZygoteInit
> $MethodAndArgsCaller.run(ZygoteInit.java:739)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497)
> 11-04 02:01:23.851: ERROR/AndroidRuntime(190):     at
> dalvik.system.NativeStart.main(Native Method)
>
> Thanks
>
> On Nov 4, 12:47 am, "Jason Parekh" <[EMAIL PROTECTED]> wrote:
>
> > Hi Mark,
>
> > I just tried as you suggested with the ExpandableList1 sample, and I don't
> > see any exceptions.  Can you print the stack of the exception you're seeing?
>
> > You can browse the source athttp://git.source.android.com
>
> > jason
>
> > On Mon, Nov 3, 2008 at 2:33 PM, Mark Wyszomierski <[EMAIL PROTECTED]> wrote:
>
> > > Hi,
>
> > > Trying to implement BaseExpandableListAdapter.getChildView() but it
> > > throws a class cast exception if I try returning any descendant of
> > > View, such as LinearLayout, or ViewGroup:
>
> > >     public View BaseExpandableListAdapter.getChildView()
> > >     {
> > >          return new LinearLayout(..);
> > >     }
>
> > > The API sample returns a TextView, which doesn't crash. What's special
> > > about TextView that works, but ViewGroup will not? I thought they both
> > > derive from View? This used to work in earlier versions of the SDK.
>
> > > Is there anything like browse source in svn that will let me just look
> > > at the source of TextView online or do I have to download the entire
> > > source tree to do this?
>
> > > Thanks
>
>
--~--~---------~--~----~------------~-------~--~----~
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