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>
此刻,我沒有將ItemizedOverlay作爲MapActivty的內部類...我可以移動它,但會看到我還能完成什麼。現在,我可以通過日誌(「Detail Here。Detail Here。」)讀取默認的TextView文本,但是我無法將視圖顯示在屏幕上,因爲它顯示「addView」無法在其中識別ItemizedOverlay。 – Chris 2010-10-13 18:39:42
@Chris:「目前,我沒有將ItemizedOverlay作爲MapActivty的內部類」 - 您也可以將'MapActivity'作爲您的'ItemizedOverlay'的構造函數參數傳遞。 「但是我無法將視圖顯示在屏幕上,因爲它表示在ItemizedOverlay中無法識別」addView「。」 - 正確。您不想將其添加到疊加層。你想把它添加到你在'MapActivity'中提供給'setContentView()'的任何東西。或者,它始終在那裏,並根據需要在可見和消失之間切換。 – CommonsWare 2010-10-13 18:47:18