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