Would you mind elaborating a bit, and showing some code? I am having
the exact same problem, and am in the exact same situation, but I
can't follow your solutions.

-- Eric

On 11月4日, 午後9:34, Lee Laborczfalvi <[email protected]> wrote:
> Thanks for the tip on this.  That fixes my issue.
>
> What I've done is inflate the layout, call setContentView with that
> view, add my tabs and set the visibility of the entire view to
> View.GONE.
>
> In my onPostExecute I call setContentView(View.VISIBLE) to display the 
> TabHost.
>
> Thanks again,
> Lee
>
>
>
> On Wed, Nov 4, 2009 at 8:58 PM, Lee Laborczfalvi <[email protected]> wrote:
> > 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 <[email protected]> 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 <[email protected]> 
> >> 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.j
> >>>  ava: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 [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
>
> >> --
> >> Jeff Sharkey
> >> [email protected]
>
> >> --
> >> 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

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