There seems a bug in GridView class. Let me put it with this example:
I put a "Select All" button above a photo GridView in a LinearLayout.
When this layout is displayed on screen, the focus is by default with
the button. As I press DOWN pad to move the focus to the grid, Android
cries with this:
E/AndroidRuntime(1057): Uncaught handler: thread Main exiting due to
uncaught exception
E/AndroidRuntime(1057): java.lang.NullPointerException
E/AndroidRuntime(1057): at
android.widget.GridView.moveSelection(GridView.java:509)
E/AndroidRuntime(1057): at
android.widget.GridView.layout(GridView.java:723)
E/AndroidRuntime(1057): at
android.widget.AbsListView.onLayout(AbsListView.java:330)
E/AndroidRuntime(1057): at android.view.View.layout(View.java:
3833)
E/AndroidRuntime(1057): at
android.widget.LinearLayout.setChildFrame(LinearLayout.java:939)
E/AndroidRuntime(1057): at
android.widget.LinearLayout.layOutVertical(LinearLayout.java:836)
E/AndroidRuntime(1057): at
android.widget.LinearLayout.onLayout(LinearLayout.java:765)
E/AndroidRuntime(1057): at android.view.View.layout(View.java:
3833)
E/AndroidRuntime(1057): at
android.widget.FrameLayout.onLayout(FrameLayout.java:176)
E/AndroidRuntime(1057): at android.view.View.layout(View.java:
3833)
E/AndroidRuntime(1057): at
android.widget.LinearLayout.setChildFrame(LinearLayout.java:939)
E/AndroidRuntime(1057): at
android.widget.LinearLayout.layOutVertical(LinearLayout.java:836)
E/AndroidRuntime(1057): at
android.widget.LinearLayout.onLayout(LinearLayout.java:765)
E/AndroidRuntime(1057): at android.view.View.layout(View.java:
3833)
E/AndroidRuntime(1057): at
android.widget.FrameLayout.onLayout(FrameLayout.java:176)
E/AndroidRuntime(1057): at android.view.View.layout(View.java:
3833)
E/AndroidRuntime(1057): at
android.widget.FrameLayout.onLayout(FrameLayout.java:176)
E/AndroidRuntime(1057): at android.view.View.layout(View.java:
3833)
E/AndroidRuntime(1057): at
android.view.ViewRoot.performTraversals(ViewRoot.java:342)
E/AndroidRuntime(1057): at
android.view.ViewRoot.handleMessage(ViewRoot.java:547)
E/AndroidRuntime(1057): at
android.os.Handler.dispatchMessage(Handler.java:80)
E/AndroidRuntime(1057): at android.os.Looper.loop(Looper.java:71)
E/AndroidRuntime(1057): at
android.app.ActivityThread.main(ActivityThread.java:2506)
E/AndroidRuntime(1057): at
java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1057): at
java.lang.reflect.Method.invoke(Method.java:380)
E/AndroidRuntime(1057): at android.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:1170)
E/AndroidRuntime(1057): at
android.os.ZygoteInit.main(ZygoteInit.java:1121)
E/AndroidRuntime(1057): at android.dalvik.NativeStart.main(Native
Method)
Looking like GridView always expects there HAS BEEN a selected item in
itself before it gets focus so that it gets null pointer trying to
"moveSelection" ...
> There seems a bug in GridView class. Let me put it with this example:
> I put a "Select All" button above a photo GridView in a LinearLayout.
> When this layout is displayed on screen, the focus is by default with
> the button. As I press DOWN pad to move the focus to the grid, Android
> cries with this:
> E/AndroidRuntime(1057): Uncaught handler: thread Main exiting due to
> uncaught exception
> E/AndroidRuntime(1057): java.lang.NullPointerException
> E/AndroidRuntime(1057): at
> android.widget.GridView.moveSelection(GridView.java:509)
> E/AndroidRuntime(1057): at
> android.widget.GridView.layout(GridView.java:723)
> E/AndroidRuntime(1057): at
> android.widget.AbsListView.onLayout(AbsListView.java:330)
> E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> 3833)
> E/AndroidRuntime(1057): at
> android.widget.LinearLayout.setChildFrame(LinearLayout.java:939)
> E/AndroidRuntime(1057): at
> android.widget.LinearLayout.layOutVertical(LinearLayout.java:836)
> E/AndroidRuntime(1057): at
> android.widget.LinearLayout.onLayout(LinearLayout.java:765)
> E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> 3833)
> E/AndroidRuntime(1057): at
> android.widget.FrameLayout.onLayout(FrameLayout.java:176)
> E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> 3833)
> E/AndroidRuntime(1057): at
> android.widget.LinearLayout.setChildFrame(LinearLayout.java:939)
> E/AndroidRuntime(1057): at
> android.widget.LinearLayout.layOutVertical(LinearLayout.java:836)
> E/AndroidRuntime(1057): at
> android.widget.LinearLayout.onLayout(LinearLayout.java:765)
> E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> 3833)
> E/AndroidRuntime(1057): at
> android.widget.FrameLayout.onLayout(FrameLayout.java:176)
> E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> 3833)
> E/AndroidRuntime(1057): at
> android.widget.FrameLayout.onLayout(FrameLayout.java:176)
> E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> 3833)
> E/AndroidRuntime(1057): at
> android.view.ViewRoot.performTraversals(ViewRoot.java:342)
> E/AndroidRuntime(1057): at
> android.view.ViewRoot.handleMessage(ViewRoot.java:547)
> E/AndroidRuntime(1057): at
> android.os.Handler.dispatchMessage(Handler.java:80)
> E/AndroidRuntime(1057): at android.os.Looper.loop(Looper.java:71)
> E/AndroidRuntime(1057): at
> android.app.ActivityThread.main(ActivityThread.java:2506)
> E/AndroidRuntime(1057): at
> java.lang.reflect.Method.invokeNative(Native Method)
> E/AndroidRuntime(1057): at
> java.lang.reflect.Method.invoke(Method.java:380)
> E/AndroidRuntime(1057): at android.os.ZygoteInit
> $MethodAndArgsCaller.run(ZygoteInit.java:1170)
> E/AndroidRuntime(1057): at
> android.os.ZygoteInit.main(ZygoteInit.java:1121)
> E/AndroidRuntime(1057): at android.dalvik.NativeStart.main(Native
> Method)
> Looking like GridView always expects there HAS BEEN a selected item in
> itself before it gets focus so that it gets null pointer trying to
> "moveSelection" ...
> I'm receiving the same exception with a very similar setup.
> Did you find a solution for it ??
> Regards, plusminus > http://anddev.org > # Worlds largest Android Development Community / Tutorials
> On Jan 24, 12:53 am, Kyara11 <kyara5...@gmail.com> wrote: > > Dear Android,
> > There seems a bug in GridView class. Let me put it with this example: > > I put a "Select All" button above a photo GridView in a LinearLayout. > > When this layout is displayed on screen, the focus is by default with > > the button. As I press DOWN pad to move the focus to the grid, Android > > cries with this:
> > E/AndroidRuntime(1057): Uncaught handler: thread Main exiting due to > > uncaught exception > > E/AndroidRuntime(1057): java.lang.NullPointerException > > E/AndroidRuntime(1057): at > > android.widget.GridView.moveSelection(GridView.java:509) > > E/AndroidRuntime(1057): at > > android.widget.GridView.layout(GridView.java:723) > > E/AndroidRuntime(1057): at > > android.widget.AbsListView.onLayout(AbsListView.java:330) > > E/AndroidRuntime(1057): at android.view.View.layout(View.java: > > 3833) > > E/AndroidRuntime(1057): at > > android.widget.LinearLayout.setChildFrame(LinearLayout.java:939) > > E/AndroidRuntime(1057): at > > android.widget.LinearLayout.layOutVertical(LinearLayout.java:836) > > E/AndroidRuntime(1057): at > > android.widget.LinearLayout.onLayout(LinearLayout.java:765) > > E/AndroidRuntime(1057): at android.view.View.layout(View.java: > > 3833) > > E/AndroidRuntime(1057): at > > android.widget.FrameLayout.onLayout(FrameLayout.java:176) > > E/AndroidRuntime(1057): at android.view.View.layout(View.java: > > 3833) > > E/AndroidRuntime(1057): at > > android.widget.LinearLayout.setChildFrame(LinearLayout.java:939) > > E/AndroidRuntime(1057): at > > android.widget.LinearLayout.layOutVertical(LinearLayout.java:836) > > E/AndroidRuntime(1057): at > > android.widget.LinearLayout.onLayout(LinearLayout.java:765) > > E/AndroidRuntime(1057): at android.view.View.layout(View.java: > > 3833) > > E/AndroidRuntime(1057): at > > android.widget.FrameLayout.onLayout(FrameLayout.java:176) > > E/AndroidRuntime(1057): at android.view.View.layout(View.java: > > 3833) > > E/AndroidRuntime(1057): at > > android.widget.FrameLayout.onLayout(FrameLayout.java:176) > > E/AndroidRuntime(1057): at android.view.View.layout(View.java: > > 3833) > > E/AndroidRuntime(1057): at > > android.view.ViewRoot.performTraversals(ViewRoot.java:342) > > E/AndroidRuntime(1057): at > > android.view.ViewRoot.handleMessage(ViewRoot.java:547) > > E/AndroidRuntime(1057): at > > android.os.Handler.dispatchMessage(Handler.java:80) > > E/AndroidRuntime(1057): at android.os.Looper.loop(Looper.java:71) > > E/AndroidRuntime(1057): at > > android.app.ActivityThread.main(ActivityThread.java:2506) > > E/AndroidRuntime(1057): at > > java.lang.reflect.Method.invokeNative(Native Method) > > E/AndroidRuntime(1057): at > > java.lang.reflect.Method.invoke(Method.java:380) > > E/AndroidRuntime(1057): at android.os.ZygoteInit > > $MethodAndArgsCaller.run(ZygoteInit.java:1170) > > E/AndroidRuntime(1057): at > > android.os.ZygoteInit.main(ZygoteInit.java:1121) > > E/AndroidRuntime(1057): at android.dalvik.NativeStart.main(Native > > Method)
> > Looking like GridView always expects there HAS BEEN a selected item in > > itself before it gets focus so that it gets null pointer trying to > > "moveSelection" ...
> This is a known bug in M3 that we fixed a while ago and the fix will be
> available in the next version of the SDK.
> On Feb 2, 2008 10:42 AM, plusminus <stoeps...@gmx.de> wrote:
> > Hello Kyara,
> > I'm receiving the same exception with a very similar setup.
> > Did you find a solution for it ??
> > Regards, plusminus
> >http://anddev.org > > # Worlds largest Android Development Community / Tutorials
> > On Jan 24, 12:53 am, Kyara11 <kyara5...@gmail.com> wrote:
> > > Dear Android,
> > > There seems a bug in GridView class. Let me put it with this example:
> > > I put a "Select All" button above a photo GridView in a LinearLayout.
> > > When this layout is displayed on screen, the focus is by default with
> > > the button. As I press DOWN pad to move the focus to the grid, Android
> > > cries with this:
> > > E/AndroidRuntime(1057): Uncaught handler: thread Main exiting due to
> > > uncaught exception
> > > E/AndroidRuntime(1057): java.lang.NullPointerException
> > > E/AndroidRuntime(1057): at
> > > android.widget.GridView.moveSelection(GridView.java:509)
> > > E/AndroidRuntime(1057): at
> > > android.widget.GridView.layout(GridView.java:723)
> > > E/AndroidRuntime(1057): at
> > > android.widget.AbsListView.onLayout(AbsListView.java:330)
> > > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > > 3833)
> > > E/AndroidRuntime(1057): at
> > > android.widget.LinearLayout.setChildFrame(LinearLayout.java:939)
> > > E/AndroidRuntime(1057): at
> > > android.widget.LinearLayout.layOutVertical(LinearLayout.java:836)
> > > E/AndroidRuntime(1057): at
> > > android.widget.LinearLayout.onLayout(LinearLayout.java:765)
> > > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > > 3833)
> > > E/AndroidRuntime(1057): at
> > > android.widget.FrameLayout.onLayout(FrameLayout.java:176)
> > > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > > 3833)
> > > E/AndroidRuntime(1057): at
> > > android.widget.LinearLayout.setChildFrame(LinearLayout.java:939)
> > > E/AndroidRuntime(1057): at
> > > android.widget.LinearLayout.layOutVertical(LinearLayout.java:836)
> > > E/AndroidRuntime(1057): at
> > > android.widget.LinearLayout.onLayout(LinearLayout.java:765)
> > > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > > 3833)
> > > E/AndroidRuntime(1057): at
> > > android.widget.FrameLayout.onLayout(FrameLayout.java:176)
> > > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > > 3833)
> > > E/AndroidRuntime(1057): at
> > > android.widget.FrameLayout.onLayout(FrameLayout.java:176)
> > > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > > 3833)
> > > E/AndroidRuntime(1057): at
> > > android.view.ViewRoot.performTraversals(ViewRoot.java:342)
> > > E/AndroidRuntime(1057): at
> > > android.view.ViewRoot.handleMessage(ViewRoot.java:547)
> > > E/AndroidRuntime(1057): at
> > > android.os.Handler.dispatchMessage(Handler.java:80)
> > > E/AndroidRuntime(1057): at android.os.Looper.loop(Looper.java:71)
> > > E/AndroidRuntime(1057): at
> > > android.app.ActivityThread.main(ActivityThread.java:2506)
> > > E/AndroidRuntime(1057): at
> > > java.lang.reflect.Method.invokeNative(Native Method)
> > > E/AndroidRuntime(1057): at
> > > java.lang.reflect.Method.invoke(Method.java:380)
> > > E/AndroidRuntime(1057): at android.os.ZygoteInit
> > > $MethodAndArgsCaller.run(ZygoteInit.java:1170)
> > > E/AndroidRuntime(1057): at
> > > android.os.ZygoteInit.main(ZygoteInit.java:1121)
> > > E/AndroidRuntime(1057): at android.dalvik.NativeStart.main(Native
> > > Method)
> > > Looking like GridView always expects there HAS BEEN a selected item in
> > > itself before it gets focus so that it gets null pointer trying to
> > > "moveSelection" ...
Please refrain from using such workarounds. I know these bugs are annoying but it might be bad for your application (performance-wise) to reset the adapter on every click.
On Feb 3, 2008 10:19 AM, plusminus <stoeps...@gmx.de> wrote:
> Best Regards, plusminus > http://anddev.org > # Worlds largest Android Development Community / Tutorials
> On Feb 2, 8:29 pm, "Romain Guy" <romain...@google.com> wrote: > > This is a known bug in M3 that we fixed a while ago and the fix will be > > available in the next version of the SDK.
> > On Feb 2, 2008 10:42 AM, plusminus <stoeps...@gmx.de> wrote:
> > > Hello Kyara,
> > > I'm receiving the same exception with a very similar setup.
> > > Did you find a solution for it ??
> > > Regards, plusminus > > >http://anddev.org > > > # Worlds largest Android Development Community / Tutorials
> > > On Jan 24, 12:53 am, Kyara11 <kyara5...@gmail.com> wrote: > > > > Dear Android,
> > > > There seems a bug in GridView class. Let me put it with this > example: > > > > I put a "Select All" button above a photo GridView in a > LinearLayout. > > > > When this layout is displayed on screen, the focus is by default > with > > > > the button. As I press DOWN pad to move the focus to the grid, > Android > > > > cries with this:
> > > > Looking like GridView always expects there HAS BEEN a selected item > in > > > > itself before it gets focus so that it gets null pointer trying to > > > > "moveSelection" ...
> I'm receiving the same exception with a very similar setup.
> Did you find a solution for it ??
> Regards, plusminushttp://anddev.org > # Worlds largest Android Development Community / Tutorials
> On Jan 24, 12:53 am, Kyara11 <kyara5...@gmail.com> wrote:
> > Dear Android,
> > There seems a bug in GridView class. Let me put it with this example:
> > I put a "Select All" button above a photo GridView in a LinearLayout.
> > When this layout is displayed on screen, the focus is by default with
> > the button. As I press DOWN pad to move the focus to the grid, Android
> > cries with this:
> > E/AndroidRuntime(1057): Uncaught handler: thread Main exiting due to
> > uncaught exception
> > E/AndroidRuntime(1057): java.lang.NullPointerException
> > E/AndroidRuntime(1057): at
> > android.widget.GridView.moveSelection(GridView.java:509)
> > E/AndroidRuntime(1057): at
> > android.widget.GridView.layout(GridView.java:723)
> > E/AndroidRuntime(1057): at
> > android.widget.AbsListView.onLayout(AbsListView.java:330)
> > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > 3833)
> > E/AndroidRuntime(1057): at
> > android.widget.LinearLayout.setChildFrame(LinearLayout.java:939)
> > E/AndroidRuntime(1057): at
> > android.widget.LinearLayout.layOutVertical(LinearLayout.java:836)
> > E/AndroidRuntime(1057): at
> > android.widget.LinearLayout.onLayout(LinearLayout.java:765)
> > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > 3833)
> > E/AndroidRuntime(1057): at
> > android.widget.FrameLayout.onLayout(FrameLayout.java:176)
> > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > 3833)
> > E/AndroidRuntime(1057): at
> > android.widget.LinearLayout.setChildFrame(LinearLayout.java:939)
> > E/AndroidRuntime(1057): at
> > android.widget.LinearLayout.layOutVertical(LinearLayout.java:836)
> > E/AndroidRuntime(1057): at
> > android.widget.LinearLayout.onLayout(LinearLayout.java:765)
> > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > 3833)
> > E/AndroidRuntime(1057): at
> > android.widget.FrameLayout.onLayout(FrameLayout.java:176)
> > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > 3833)
> > E/AndroidRuntime(1057): at
> > android.widget.FrameLayout.onLayout(FrameLayout.java:176)
> > E/AndroidRuntime(1057): at android.view.View.layout(View.java:
> > 3833)
> > E/AndroidRuntime(1057): at
> > android.view.ViewRoot.performTraversals(ViewRoot.java:342)
> > E/AndroidRuntime(1057): at
> > android.view.ViewRoot.handleMessage(ViewRoot.java:547)
> > E/AndroidRuntime(1057): at
> > android.os.Handler.dispatchMessage(Handler.java:80)
> > E/AndroidRuntime(1057): at android.os.Looper.loop(Looper.java:71)
> > E/AndroidRuntime(1057): at
> > android.app.ActivityThread.main(ActivityThread.java:2506)
> > E/AndroidRuntime(1057): at
> > java.lang.reflect.Method.invokeNative(Native Method)
> > E/AndroidRuntime(1057): at
> > java.lang.reflect.Method.invoke(Method.java:380)
> > E/AndroidRuntime(1057): at android.os.ZygoteInit
> > $MethodAndArgsCaller.run(ZygoteInit.java:1170)
> > E/AndroidRuntime(1057): at
> > android.os.ZygoteInit.main(ZygoteInit.java:1121)
> > E/AndroidRuntime(1057): at android.dalvik.NativeStart.main(Native
> > Method)
> > Looking like GridView always expects there HAS BEEN a selected item in
> > itself before it gets focus so that it gets null pointer trying to
> > "moveSelection" ...