OK, Thanks.
On May 16, 6:26 pm, Jeff Sharkey <[email protected]> wrote:
> Right, there is a specific list of framework views that can be used
> when building widgets:
>
> http://groups.google.com/group/android-developers/msg/a5247467151f5e3a
>
> And subclasses of those views aren't allowed, since you could include
> any arbitrary code in your subclass. (Because the widget's view tree
> lives in Launcher, the layout and drawing code is executed by the
> Launcher process.)
>
> Also, since Launcher doesn't request the Maps library in its manifest,
> it wouldn't know how to inflate a MapView.
>
> j
>
>
>
> On Sat, May 16, 2009 at 5:42 PM, JP <[email protected]> wrote:
>
> > I've started building a Widget for an app that is mostly map centric,
> > i.e. consists of a screen-filling subclassed MapView, Overlay and so
> > forth. The relevant information that is displayed by the map overlay
> > actually fits into a Widget that uses one of the standard sizes, so it
> > would make sense to use the subclassed MapView and all it entails
> > inside the Widget (in the spirit of polymorphism).
> > Looking at Google's sample code, it seems the Views that can be
> > displayed in Widgets are limited to just a few Views (I've seen
> > TextView and ImageView)? I suppose I could live with that (although it
> > entails duplication), but the real thing would be using the subclassed
> > MapView. I tried that out, but when loading the Widget, I get a class
> > not found exception. Is there a way to use a subclassed View in a
> > Widget?
>
> > Below the sanitized layout and the LogCat dump:
>
> > <-------------------layout ----------------------->
>
> > <?xml version="1.0" encoding="utf-8"?>
>
> > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/
> > android"
> > android:id="@+id/widget"
> > android:layout_width="fill_parent"
> > android:layout_height="wrap_content"
> > android:focusable="true"
> > style="@style/WidgetBackground">
>
> > <com.google.android.maps.MyMapView
> > android:id="@+id/mapview"
> > android:layout_width="fill_parent"
> > android:layout_height="fill_parent"
> > android:enabled="true"
> > android:clickable="true"
> > android:apiKey="myKey.oi878f8w88OOiu0fu0."
> > />
>
> > <------------------crash
> > -------------------------------------------------->
>
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611):
> > android.view.InflateException: Binary XML file line #18: Error
> > inflating class com.google.android.maps.MyMapView
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:575)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.view.LayoutInflater.rInflate(LayoutInflater.java:617)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.view.LayoutInflater.inflate(LayoutInflater.java:407)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.view.LayoutInflater.inflate(LayoutInflater.java:320)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.widget.RemoteViews.apply(RemoteViews.java:830)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.appwidget.AppWidgetHostView.updateAppWidget
> > (AppWidgetHostView.java:167)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.appwidget.AppWidgetHost.createView(AppWidgetHost.java:218)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > com.android.launcher.Launcher.completeAddAppWidget(Launcher.java:653)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > com.android.launcher.Launcher.onActivityResult(Launcher.java:335)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > com.android.launcher.Launcher.addAppWidget(Launcher.java:957)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > com.android.launcher.Launcher.onActivityResult(Launcher.java:332)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.app.Activity.dispatchActivityResult(Activity.java:3595)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.app.ActivityThread.deliverResults(ActivityThread.java:3001)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.app.ActivityThread.handleSendResult(ActivityThread.java:3047)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.app.ActivityThread.access$2300(ActivityThread.java:112)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.app.ActivityThread$H.handleMessage(ActivityThread.java:1721)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.os.Handler.dispatchMessage(Handler.java:99)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.os.Looper.loop(Looper.java:123)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.app.ActivityThread.main(ActivityThread.java:3948)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > java.lang.reflect.Method.invokeNative(Native Method)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > java.lang.reflect.Method.invoke(Method.java:521)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
> > (ZygoteInit.java:782)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > dalvik.system.NativeStart.main(Native Method)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): Caused by:
> > java.lang.ClassNotFoundException: com.google.android.maps.MyMapView in
> > loader dalvik.system.pathclassloa...@400190f8
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > java.lang.ClassLoader.loadClass(ClassLoader.java:573)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > java.lang.ClassLoader.loadClass(ClassLoader.java:532)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.view.LayoutInflater.createView(LayoutInflater.java:465)
> > 05-17 00:09:58.162: WARN/AppWidgetHostView(611): at
> > android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:564)
>
> --
> 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
-~----------~----~----~----~------~----~------~--~---