Apparently you were inflating a View from an adapter and putting that View in the wrong parent, which caused the ClassCastException.
On Wed, Dec 3, 2008 at 10:22 PM, CaseyB <[EMAIL PROTECTED]> wrote: > > Ok, I am not sure exactly what the problem was but I fixed it my > creating the layout in code and instantiating an instance of it > instead of trying to inflate it from xml. > > On Dec 3, 4:18 pm, CaseyB <[EMAIL PROTECTED]> wrote: >> I made the change you suggested but I still get the same error. It's >> dying down in the code that's trying to layout the screen it looks >> like. Hmmm.... >> >> On Dec 2, 11:23 am, Romain Guy <[EMAIL PROTECTED]> wrote: >> >> > Hi, >> >> > The line: >> > View.inflate(FileBrowser.this, R.layout.icon, null); >> >> > Should be: >> > LayoutInflate.from(FileBrowser.this).inflate(R.layout.icon, parent, false); >> >> > You have to pass the parent so that the generated layout parameters >> > are of the right type. In the case of a GridView, it is also important >> > to pass false to the "attach to root" parameter so that the View is >> > not added directly to the parent (prevents a call to parent.addView.) >> > The latter is mandatory because GridView will add the View to itself >> > automatically after calling your getView() method. >> >> > On Tue, Dec 2, 2008 at 1:27 AM, CaseyB <[EMAIL PROTECTED]> wrote: >> >> > > I am trying to use a grid with a custom component but when I try to >> > > inflate the view I get the following exception: >> >> > > 12-02 04:18:07.790: ERROR/AndroidRuntime(1146): Uncaught handler: >> > > thread main exiting due to uncaught exception >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): >> > > java.lang.ClassCastException: android.widget.AbsListView$LayoutParams >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.widget.LinearLayout.measureVertical(LinearLayout.java:323) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.widget.LinearLayout.onMeasure(LinearLayout.java:275) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.view.View.measure(View.java:6621) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.widget.GridView.onMeasure(GridView.java:937) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.view.View.measure(View.java:6621) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2791) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.widget.FrameLayout.onMeasure(FrameLayout.java:208) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.view.View.measure(View.java:6621) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.widget.LinearLayout.measureVertical(LinearLayout.java:461) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.widget.LinearLayout.onMeasure(LinearLayout.java:275) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.view.View.measure(View.java:6621) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2791) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.widget.FrameLayout.onMeasure(FrameLayout.java:208) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.view.View.measure(View.java:6621) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.view.ViewRoot.performTraversals(ViewRoot.java:620) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.view.ViewRoot.handleMessage(ViewRoot.java:1103) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.os.Handler.dispatchMessage(Handler.java:88) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.os.Looper.loop(Looper.java:123) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > android.app.ActivityThread.main(ActivityThread.java:3742) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > java.lang.reflect.Method.invokeNative(Native Method) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > java.lang.reflect.Method.invoke(Method.java:515) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run >> > > (ZygoteInit.java:739) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497) >> > > 12-02 04:18:08.030: ERROR/AndroidRuntime(1146): at >> > > dalvik.system.NativeStart.main(Native Method) >> >> > > Here is the code I am using to try to inflate the view: >> >> > > @Override >> > > public View getView(int index, View convertView, ViewGroup parent) >> > > { >> > > View iconLayout; >> > > ImageView icon; >> > > TextView fileName; >> >> > > if (convertView == null) >> > > { >> > > iconLayout = View.inflate(FileBrowser.this, >> > > R.layout.icon, null); >> >> > > icon = (ImageView)iconLayout.findViewById(R.id.Icon); >> > > icon.setScaleType(ImageView.ScaleType.FIT_CENTER); >> > > icon.setLayoutParams(new GridView.LayoutParams(50, 50)); >> >> > > fileName = >> > > (TextView)iconLayout.findViewById(R.id.FileName); >> > > } >> > > else >> > > { >> > > iconLayout = convertView; >> > > icon = (ImageView)convertView.findViewById(R.id.Icon); >> > > fileName = >> > > (TextView)convertView.findViewById(R.id.FileName); >> > > } >> >> > > icon.setImageResource(getIcon(index)); >> > > fileName.setText(mFiles.get(index).getName()); >> >> > > return iconLayout; >> > > } >> >> > > and here is the layout file: >> >> > > <?xml version="1.0" encoding="utf-8"?> >> > > <LinearLayout >> > > android:layout_width="wrap_content" >> > > android:layout_height="wrap_content" >> > > xmlns:android="http://schemas.android.com/apk/res/android" >> > > android:orientation="vertical" >> > > android:id="@+id/IconLayout"> >> >> > > <ImageView >> > > android:layout_width="wrap_content" >> > > android:layout_height="wrap_content" >> > > android:id="@+id/Icon" >> > > android:maxHeight="48px" >> > > android:maxWidth="48px" >> > > android:minHeight="48px" >> > > android:minWidth="48px" /> >> >> > > <TextView >> > > android:layout_width="wrap_content" >> > > android:layout_height="wrap_content" >> > > android:id="@+id/FileName" >> > > android:maxLength="15" >> > > android:maxLines="1" /> >> > > </LinearLayout> >> >> > > Does anyone know what is causing this exception? >> >> > -- >> > Romain Guywww.curious-creature.org > > > -- Romain Guy www.curious-creature.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---