2012-09-18 1 views
2

J'essaie d'obtenir la mise en page MapView de ressources, mais il renvoie null:Obtenir vue de la mise en page des ressources en Xamarin ou MonoDroid

var map_view = FindViewById<MapView>(Resource.Id.emap); 

mylayout.xml comme:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/etklmap" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<Button 
android:id="@+id/zoomOutButton" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="Zoom Out" /> 

<com.google.android.maps.MapView 
    android:id="@+id/emap" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:apiKey="apikey" /> 
</LinearLayout> 

Ainsi est-il possible de obtenir la vue sans appeler SetContentView(Resource.Layout.mylayout);

Répondre

2

Le fichier de ressources est uniquement XML - il ne devient pas une collection de groupes de vues et de widgets jusqu'à ce qu'il soit "gonflé"

Une façon de gonfler XML consiste à utiliser SetContentView.

Une autre façon est d'utiliser le inflaterservice - voir cette question MonoDroid (et réponses) pour un exemple: Android: Getting the View added with LayoutInflator


Notez que - sous les couvertures - tout setContentView n'est de gonfler le XML en utilisant exactement la même gonfleur, passant dans l'activité comme le cadre parent pour l'inflation.


Les docs Android officiels sur ce sont http://developer.android.com/reference/android/view/LayoutInflater.html

Questions connexes