It fails because you need the Activity Context for the FindViewByID
and some Layout has not the Context to work with it.
Would be my answer to this.
Enrico
Am 22.02.2012 um 20:07 schrieb Chris Tacke:
In the end it worked if I requested the FindViewById from the
Activity itself, not the Layout:
This fails:
var map = m_layout.FindViewById<MapView>(Resource.Id.DriverMap);
This works:
var map = this.FindViewById<MapView>(Resource.Id.DriverMap);
So that answers #1. But #2 is still apropos. Why does the first
case above fail? The MapView *is* in that Layout.
-Chris
-----Original Message-----
From: monodroid-boun...@lists.ximian.com [mailto:monodroid-
boun...@lists.ximian.com] On Behalf Of Chris Tacke
Sent: Wednesday, February 22, 2012 9:50 AM
To: Discussions related to Mono for Android
Subject: [mono-android] FindViewById returning a ViewGroupInvoker
I have an AbsoluteLayout that contains a MapView. I load this layout
in my Activity (which is a MapActivity) like this:
m_layout = LayoutInflater.Inflate(Resource.Layout.DriverLayout,
null);
SetContentView(m_layout);
And the MapView shows up on the screen and works just fine.
The MapView is defined in the layout like this:
<com.google.android.maps.MapView
android:id="@+id/DriverMap"
android:layout_width="800px"
android:layout_height="400px"
android:layout_x="0px"
android:layout_y="100px"
android:clickable="true"
android:apiKey="mykey" />
Later on in my app, I'd like to get hold of this MapView so I can
zoom
in on it, but I'm having difficulty.
My first attempt returned null:
var m =
m_layout.FindViewById<MapView>(Resource.Id.DriverMap);
A more generic version with a cast fails (i.e. code doesn't
continue to
run past this point - assuming the cast failed)
var m = (MapView)m_layout.FindViewById (Resource.Id.DriverMap);
So I tried without a cast:
var m = m_layout.FindViewById (Resource.Id.DriverMap) as
Android.GoogleMaps.MapView;
And again I get back a null;
So I tried this:
var m = m_layout.FindViewById(Resource.Id.DriverMap);
And I *do* get back an object - just not a MapView. I run this:
var mt = m.GetType().Name;
And I get back "ViewGroupInvoker"
My GoogleFu fails to even find what this type is. Obviously it's
related to a ViewGroup, but I've not explicitly created one (maybe
the
MapView does?). So I guess I have a couple questions:
1. How do I get access to my MapView? I mean that's really what I
want.
2. Why am I getting back this "ViewGroupInvoker" and what is it?
Getting the right answer (#1) is good, but understanding the
failure is
also important so I don't fall into this again.
-Chris
_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid
_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid
_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid