多个InfoWindowAdatper的

2024-01-09

我有一张地图,我在其中创建不同类型的标记。我无法将信息窗口适配器分配给标记(哎呀,这不是很好),我只能为整个地图分配 InfoWindowAdapter(至少我认为)。

我的问题是我想根据我点击的内容显示不同类型的信息窗口。是否是设置一个 InfoWindowAdapter 的唯一方法,该适配器将根据我传递的标记来处理创建正确类型的信息窗口?

我错过了一些简单的事情吗?


当您向地图添加标记时,您将收到一个 ID,它唯一标识您的标记。

添加标记并将其放入地图后,您可以立即创建 InfoWindowAdapter 的实例,这会将 ID 作为键,将 InfoWindowAdapter 作为值。

Marker marker = map.addMarker(options);
// Create your special infoWindowAdapter for this marker
// ...
adapterMap.put(marker.getId(), youSpecialInfoWindowAdapter);

在您在地图上注册的一个中央 InfoWindowAdapter 中,您只需使用标记的 ID 即可获取特定的 InfoWindowAdapter 并委托给该 InfoWindowAdapter 的方法。 访问地图可以例如在 InfoWindowAdapter 的构造函数中提供(以避免全局或静态变量):

class CentralInfoWindowAdapter implements InfoWindowAdapter {
    Map<String, GoogleMap.InfoWindowAdapter> adapterMap;

    public CentralInfoWindowAdapter(
            Map<String, GoogleMap.InfoWindowAdapter> adapterMap) {
        this.adapterMap = adapterMap;
    }

    @Override
    public View getInfoContents(Marker marker) {
        InfoWindowAdapter adapter = adapterMap.get(marker.getId());
        return adapter.getInfoContents(marker);
    }

    @Override
    public View getInfoWindow(Marker marker) {
        InfoWindowAdapter adapter = adapterMap.get(marker.getId());
        return adapter.getInfoWindow(marker);
    }

}

当然,你可以改变这个原则。如果根据标记的“类型”只有几个不同的 InfoWindowAdapter,您可以在映射中放入一个枚举,它标识标记的类型并让您决定在中央 InfoWindowAdapter 内使用哪种真正的 InfoWindowAdapter ,或者您仍然可以将特殊 InfoWindowAdapter 的实例放入地图中,但对相同类型的标记使用相同的实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多个InfoWindowAdatper的 的相关文章

  • 如何用Android做交互动画(翻译)

    我在 Android 中有一些 png 序列 我需要将它们的 x 和 y 位置从屏幕顶部到底部的翻译动画化 当动画发生时 我需要对象来接收单击事件 我知道这在 3 0 之前的 Android 版本中效果不太好 因为display对象的位置与
  • 无法获取项目的未知属性“assembleRelease”

    将 Android Studio 更新到版本 2 2 并将 gradle 插件更新到 2 2 0 后 出现以下错误 错误 32 1 评估项目 jobdispatcher 时出现问题 无法获取 org gradle api Project 类
  • 使用 ColorMatrix 调整亮度

    我正在尝试使用 ColorMatrix 调整图像的亮度 当尝试调整色相时 您可以在 Photoshop 中看到此选项 亮度和亮度也是两个不同的功能 但我不知道要更改哪些值才能实现此目的 目前我可以使用此代码更改色调 public stati
  • 需要对某些片段禁用 CollapsingToolbarLayout 的展开

    我有一个AppCompatActivity控制替换许多片段 这是我的布局 活动 main xml
  • 如何使用具有三种布局的视图翻转器?

    我目前正在使用ViewFlipper我的主要活动有两种不同的布局 我想使用第三种布局 但我只能找到showNext and showPrevious 命令 有人可以告诉我如何使用来实现第三种布局吗ViewFlipper 为您制作了一个示例
  • 在 Android 市场中以编程方式检查我的应用程序版本

    目前 我正在启动时检查应用程序版本代码 并将其与我的服务器上的最新版本代码进行匹配 并根据此匹配 我发送用户从 Android 市场获取最新更新 它运行良好 但我的问题是我必须手动更改服务器上的最新版本代码 并且我不知道新版本何时发布APK
  • Android 中图像字节表示的每像素字节数

    我目前正在编写一个Android应用程序 需要在其中使用OCR 为了实现这一点 我将 Tesseract 与tesseract android tools 项目 http code google com p tesseract androi
  • 如何在 Android 中创建始终位于顶部的全屏覆盖 Activity

    我希望能够创建一个始终位于 Android 显示前面的 Activity 它不应该接收任何输入 只需将其传递到其下面的任何应用程序即可 像平视显示器之类的东西 我能够研究我需要将底层窗口类型设置为 TYPE SYSTEM ALERT 但看起
  • 突出显示列表视图项目

    我需要在触摸列表视图项目时突出显示它并保持突出显示状态 我尝试了我发现的一切 但没有任何效果 这是我的代码 这是列表视图
  • 将项目添加到 android 框架的设置中

    我正在 android 框架中工作 我想向 android 操作系统中的现有设置添加一个项目 您能告诉我如何执行此操作吗 首先阅读有关偏好活动 http developer android com reference android pre
  • 如何连接到Google Play服务并加载排行榜

    我想将我的游戏与 Google Play 服务连接 我已阅读有关 Android 开发人员的文档 并尝试遵循输入数字示例 但仍然无法加载排行榜 我有导入baseGameUtils 但我使用andengine 所以我没有使用来自谷歌的exte
  • 使用 RoboSpice 有没有办法从异常中获取 HTTP 错误代码?

    我正在编写一个使用 RoboSpice 的应用程序 在请求侦听器 onRequestFailure SpiceException arg0 中 有没有办法确定该错误是由于发生 401 HTTP 错误而导致的 我有一个后端服务 当令牌过期时
  • Android - 使用 SAX 解析器解析大文件

    我正在尝试使用 SAX 解析器解析来自 webservice 的 xml 数据 当我尝试使用 URL 解析数据 大小 7 4MB 时 它工作正常 但是当我从 URL 复制 xml 数据并放置 xml 文件时 size 7 4MB 在raw文
  • 旋转 Google 地图中的两层标记图标

    在我的应用程序中 我向地图添加了一定数量的标记 如下所示 private fun addMarker googleMap GoogleMap location Location val options MarkerOptions optio
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 通过配置更改保留 CoroutineScope 的干净方法,无需 ViewModel

    我知道建议是在我们的 Activity 中使用 ViewModel 这样我们就可以使用它viewModelScope 由于 ViewModel 的寿命比 Activity 的寿命长 因此我们不必取消以下作业activity onDestro
  • foo.setVisibility(View.GONE) 和parent.removeView(foo) 之间的区别

    如果 foo 是一个视图 那么有什么区别foo setVisibility View GONE and fooParent removeView foo 我对两个语句之前和之后视图的内存消耗特别感兴趣 可见性设置为 GONE 的视图是否会消
  • Android 5 Lollipop 阴影方向或 y 偏移

    是否有可能改变 Y 偏移的阴影方向 现在我有以下布局
  • Android:选择 EditField 上焦点上的所有文本

    我试图让 Android 在获得焦点时选择 EditText 字段中的所有文本 我在布局中使用此属性 在两个字段上 android selectAllOnFocus true 我不确定这是否相关 但为了将光标移动到第一个可编辑字段 前面 还
  • 使用 PDFBox 在 Android 中创建 PDF

    我正在尝试通过我的 Android 应用程序创建 PDFPDFBoxapi 但出现以下错误 java lang NoClassDefFoundError org apache pdfbox pdmodel PDDocument 我已经将以下

随机推荐

  • 如何通过 Qt PushButton 的点击信号传递值? [复制]

    这个问题在这里已经有答案了 我有 n 个按钮最初都标记为 0 当程序运行时 这些标签或值将更改为不同的整数 例如在某些时候我可能有 7 0 2 我有一个以 int 作为参数的函数 或槽 void do stuff int i 我想在按下 x
  • 同比 Quicksight 折线图

    我正在寻找一种方法来制作同比折线图 以比较同一时间范围 日 周 月 与前一年的值 在寻找示例时 我看到很多带有 x 轴的折线图 其值看起来像 MM YYYY 我想做的是创建一个图表 其中 x 轴的值看起来像 MM 然后用不同颜色的线代表不同
  • 解决命题逻辑/布尔表达式的工具(SAT Solver?)

    我对命题逻辑和布尔表达式主题很陌生 所以这就是我需要帮助的原因 这是我的问题 在汽车行业 当您购买汽车时 有数千种不同的组件可供选择 并非每个组件都是可组合的 因此对于每辆车都存在许多用命题逻辑表达的规则 就我而言 每辆车都有 2000 到
  • Gradle maven-publish 不会构建独立的 spring-boot 应用程序

    当我使用以下命令构建 spring boot 应用程序 到独立的 jar 时gradle build 生成正确的工件 生成的 jar 包含所有依赖的 jar 并且是可执行的 我还配置了 maven publish 插件 如下所示 publi
  • 如何为R中的lapply函数内部的一行矩阵设置if条件

    我有一个数据集 需要成对计算 Kendall tau 在每对变量之间 我想将结果存储在矩阵中 但是 我想找到结果 如果当前行的每个值都小于特定值 那么我希望循环停止并且不计算下一个相关性 下一行 并返回0所有下一行的所有条目的值 我想这样做
  • glassfish v3 vs tomcat 7 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 您推荐哪一款用于网络 为什么 我不推
  • UITableViewCell + 自动布局 + RTL

    我正在将我的应用程序本地化为希伯来语 这是一种 RTL 语言 每个单元格都具有设置为前导 尾随的水平约束 这些约束在 RTL 语言上会自动反转 最终结果与预期完全一致 但是当滚动表视图时 UITableViewCell 子视图动画化从LTR
  • 如何使用 Gitlab CI 运行程序设置非常简单的部署?

    我想自动将新工作从我的 Gitlab 存储库部署到在生产服务器上运行的实时网站 实时网站是 GIT 存储库克隆live branch 我的问题 每次 构建 发生时 跑步者似乎都会重新克隆我的存储库 进入 builds 这是强制性行为吗 我想
  • 如何使用具有扩展功能的 kubernetes 来处理作业队列

    我需要一个基于 docker python 工作人员的可扩展队列处理 我的想法转向了 kubernetes 但是 我不确定最好的控制器 服务 基于天蓝色的功能 我获得传入的http流量 将简单的消息添加到存储队列中 需要处理这些消息并将结果
  • JPA2.1/ Hibernate 5.2 使用 Hibernate Tools 通过 ANT Maven 任务生成 ddl

    我已经从 Hibernate 4 3 更新到最新版本 目前是 5 2 10 Final 我需要 maven 生成 ddl 模式 以便当我运行 drop 数据库然后创建模式时 它将获取生成的 schmea 我正在尝试在 Maven 中运行 a
  • 将字符字段转换为 R 中的季度日期

    我有一个 tsv 其中有一个季度格式的日期字段 名为 trim trim 1992 4 1993 1 当我将文件作为数据帧加载时 R 将该字段作为字符导入 我无法转换它 即使我尝试 我也只能得到 NA df trim lt as Date
  • IE8不支持querySelectorAll

    我尝试使用document querySelectorAll 但是 IE8 抛出错误 即 对象不支持此属性或方法 var titleCheckBox document querySelectorAll Here http www quirk
  • Golang MGO - 插入或更新未按预期工作

    我正在用 Go 运行一个网站 并且使用MGO https labix org mgo用于连接我的 MongoDB 数据库的包 我正在处理用户的登录 并且我正在尝试使用 funcUpsert https godoc org gopkg in
  • 文档点击不在元素 jQuery 中

    使用 jQuery 如何检测非特定元素的点击 并相应地执行操作 我有以下 JavaScript master click function slave toggle document not master slave click funct
  • 在 32 位程序中使用 64 位驱动程序。视窗

    这只是一个半路编程问题 首先 我有一个 PCI Express 卡和 32 64 位驱动程序 目标操作系统必须是 Windows 64 位系统 我读到 在 Vista64 下 所有驱动程序都必须经过认证 64 位驱动程序 这是 64 位操作
  • AttributeError:“列表”对象没有属性“set_model”

    我尝试在训练深度卷积神经网络时使用早期停止和模型检查点来保存最佳模型 但是 我收到以下错误 callback set model model AttributeError list object has no attribute set m
  • Symfony 2:从存储库创建服务

    我正在学习 Symfony 并且一直在尝试使用存储库创建服务 我已经从generate entity 创建了我的存储库和实体 所以它们应该没问题 到目前为止 我在 services yml 中得到的内容是 parameters mytest
  • 如何在不加载空页面的情况下清理UIWebView的内容?

    我需要清理 UIWebView 的内容 以便重用它 但我在其委托方法中有一些身份验证处理代码 所以我不想加载像 about blank 这样的空页面来清理它 因为它会触发我的身份验证处理代码 那么有办法做到这一点吗 另外 通过重用它 我需要
  • 在 Rust 项目的 C 绑定上运行 jextract 时出现“cstdarg 文件未找到”

    我正在尝试与 Java 的巴拿马项目一起使用 Rust 编写一个简单的整数加法函数 使用生成绑定后cbindgencrate 运行 jextract 时出现以下错误 jextract t org adder L l adder java r
  • 多个InfoWindowAdatper的

    我有一张地图 我在其中创建不同类型的标记 我无法将信息窗口适配器分配给标记 哎呀 这不是很好 我只能为整个地图分配 InfoWindowAdapter 至少我认为 我的问题是我想根据我点击的内容显示不同类型的信息窗口 是否是设置一个 Inf