I'll give this a go and let you know how it works.

Thanks for the tip.
Lee

On Wed, Nov 4, 2009 at 8:27 PM, Jeff Sharkey <jshar...@android.com> wrote:
> Instead of delaying the setContentView() call, can you inflate that
> layout and set its visibility to View.GONE temporarily until the
> actual content arrives?
>
> j
>
>
> On Tue, Nov 3, 2009 at 8:52 PM, Lee Laborczfalvi <labor...@gmail.com> wrote:
>> I've got a tab host activity started from a home screen shortcut.
>> When my application starts it downloads information from a server
>> using an AsyncTask. In the onPostExecute method of the AsyncTask I
>> call setContentView to display the TabHost.
>>
>> When I start the homescreen shortcut by tapping on the shortcut using
>> my finger everything works as expected, I download the information
>> from the server and display the TabHost with the information in the
>> tabs.
>>
>> However starting the application by navigating to the shortcut with
>> the mouse wheel and then clicking on the shortcut with the mouse wheel
>> leads to a trap in the framework code as soon as my application
>> starts.  The stack trace is below:
>>
>> 11-04 15:45:40.113: ERROR/AndroidRuntime(3360): Uncaught handler:
>> thread main exiting due to uncaught exception
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360): 
>> java.lang.NullPointerException
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> android.widget.TabHost.onTouchModeChanged(TabHost.java:179)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> android.view.ViewTreeObserver.dispatchOnTouchModeChanged(ViewTreeObserver.java:591)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> android.view.ViewRoot.ensureTouchModeLocally(ViewRoot.java:1877)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> android.view.ViewRoot.performTraversals(ViewRoot.java:715)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> android.view.ViewRoot.handleMessage(ViewRoot.java:1613)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> android.os.Handler.dispatchMessage(Handler.java:99)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> android.os.Looper.loop(Looper.java:123)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> android.app.ActivityThread.main(ActivityThread.java:4203)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> java.lang.reflect.Method.invokeNative(Native Method)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> java.lang.reflect.Method.invoke(Method.java:521)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
>> 11-04 15:45:40.213: ERROR/AndroidRuntime(3360):     at
>> dalvik.system.NativeStart.main(Native Method)
>>
>> Looking at the code for the TabHost class I see the following code at
>> the point where the trap occurs
>>
>>    public void onTouchModeChanged(boolean isInTouchMode) {
>>        if (!isInTouchMode) {
>>            // leaving touch mode.. if nothing has focus, let's give it to
>>            // the indicator of the current tab
>> TRAP ON THIS LINE ---->             if (!mCurrentView.hasFocus() ||
>> mCurrentView.isFocused()) {
>>
>> mTabWidget.getChildTabViewAt(mCurrentTab).requestFocus();
>>            }
>>        }
>>    }
>>
>> This looks like a simple fix since mCurrentView is null at the time
>> that this method is called - can this issue be addressed? Does anyone
>> know of any workarounds?
>>
>> Thanks
>> Lee
>>
>> --
>> 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
>> android-developers+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/android-developers?hl=en
>>
>
>
>
> --
> Jeff Sharkey
> jshar...@android.com
>
> --
> 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
> android-developers+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en

-- 
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
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to