2010-10-12 57 views
0

我正在創建ItemizedOverlay的擴展。當用戶在地圖上點擊一個pin(onTap)時,我想顯示一個RelativeLayout,它與地圖包含在同一個.xml文件中。當RelativeLayout可見時,它覆蓋地圖。從擴展的ItemizedOverlay訪問Android視圖?

由於此視圖是主類的上下文,因此我不知道如何從onTap()調用中訪問視圖(DetailLayout)。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"  
android:id="@+id/mainlayout"  
android:orientation="vertical"  
android:layout_width="fill_parent"  
android:layout_height="fill_parent" > 

    <com.google.android.maps.MapView 
     android:id="@+id/mapview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:clickable="true" 
     android:apiKey="MY KEY HERE" 
    />  



    <RelativeLayout 
     android:id="@+id/DetailLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="left" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 
      <LinearLayout 
       android:id="@+id/DetailCloseButtonLayout" 
       android:layout_width="fill_parent" 
       android:layout_height="36dp" 
       android:gravity="center_vertical|right" 
       xmlns:android="http://schemas.android.com/apk/res/android"> 
       <Button  
        android:id="@+id/DetailCloseButton"  
        android:background="@drawable/close" 
        android:layout_width="15dp"   
        android:layout_height="15dp" 
        android:layout_marginRight="10dp" 
        android:gravity="center_vertical"> 
       </Button> 
      </LinearLayout> 
      <TextView 
       android:text="Detail Here. Detail Here." 
       android:id="@+id/DetailTextView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/DetailCloseButtonLayout"> 
      </TextView> 

    </RelativeLayout>  

回答

0

如果您ItemizedOverlay是一個內部類的MapActivity的,只需要調用findViewById()Here is a sample project來自我的一本書,展示了你正在嘗試做的事情。

+0

此刻,我沒有將ItemizedOverlay作爲MapActivty的內部類...我可以移動它,但會看到我還能完成什麼。現在,我可以通過日誌(「Detail Here。Detail Here。」)讀取默認的TextView文本,但是我無法將視圖顯示在屏幕上,因爲它顯示「addView」無法在其中識別ItemizedOverlay。 – Chris 2010-10-13 18:39:42

+0

@Chris:「目前,我沒有將ItemizedOverlay作爲MapActivty的內部類」 - 您也可以將'MapActivity'作爲您的'ItemizedOverlay'的構造函數參數傳遞。 「但是我無法將視圖顯示在屏幕上,因爲它表示在ItemizedOverlay中無法識別」addView「。」 - 正確。您不想將其添加到疊加層。你想把它添加到你在'MapActivity'中提供給'setContentView()'的任何東西。或者,它始終在那裏,並根據需要在可見和消失之間切換。 – CommonsWare 2010-10-13 18:47:18