Android itemizedOverlay 的 onTap 操作被覆盖

2024-05-27

我有一堂课:

class MapItemizedOverlay extends com.google.android.maps.ItemizedOverlay<OverlayItem> { 
    private Context context;
    private ArrayList items = new ArrayList();

    public MapItemizedOverlay(Context aContext, Drawable marker) {
        super(boundCenterBottom(marker));
        context = aContext;
    }

    public void addOverlayItem(OverlayItem item) {
        items.add(item);
        populate();
    }

    @Override
    protected OverlayItem createItem(int i) {
        return (OverlayItem) items.get(i);
    }

    @Override
    public int size() {
        return items.size();
    }

    @Override
    protected boolean onTap(int index) {
       OverlayItem item = (OverlayItem) items.get(index);
       AlertDialog.Builder dialog = new AlertDialog.Builder(context);
       dialog.setTitle(item.getTitle());
       dialog.setMessage(item.getSnippet());
       dialog.show();
       return true;
    }

    @Override
    public boolean onTap (final GeoPoint p, final MapView mapView) {
        Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
        try {
            List<Address> addresses = geoCoder.getFromLocation(p.getLatitudeE6() / 1E6,
                        p.getLongitudeE6() / 1E6, 1);
            String address = "";
            if (addresses.size() > 0) {
            for (int i=0; i<addresses.get(0).getMaxAddressLineIndex(); i++)
                    address += addresses.get(0).getAddressLine(i) + "\n";
            }   
            address.cancel();
            address.setText(address);
            address.show(); 
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        return true;
    }
}

我使用以下函数在地图上添加一些叠加层:

private void initialiseOverlays() {
        // Create an ItemizedOverlay to display a list of markers
        Drawable defaultMarker = getResources().getDrawable(R.drawable.marker);
        MapItemizedOverlay mapItemizedOverlay = new MapItemizedOverlay(this, defaultMarker);

        mapItemizedOverlay.addOverlayItem(new OverlayItem(new GeoPoint((int) (12.345678 * 1E6), (int) (23.456789 * 1E6)), "Point 1", "some-random-text"));
        mapItemizedOverlay.addOverlayItem(new OverlayItem(new GeoPoint((int) (89.012345 * 1E6), (int) (67.890123 * 1E6)), "Point number 2", "more-random-text"));        
        // Add the overlays to the map
        mapView.getOverlays().add(mapItemizedOverlay);
      }

如果仅定义了一个 onTap 函数,则一切正常 - 如果我单击地图上的某处,我可以获取地址,或者如果我单击该地点上的图标,我可以获取一个包含该地点标题和内容的对话框。 但我想让这两个功能一起工作,应用程序检测单击是否位于地图上的空白位置或标记(可绘制集)上并显示其信息。我怎样才能实现这个目标?


找到答案 - 必须包括:

if(super.onTap(p, mapView)) {
                return true;
            }

在开始的时候public boolean onTap (final GeoPoint p, final MapView mapView)功能。

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

Android itemizedOverlay 的 onTap 操作被覆盖 的相关文章

  • React Native 从 JavaScript 代码内部访问 strings.xml

    有没有办法访问当前值android app src main res values strings xml从 JavaScript 代码内部 我想为每个构建放置不同的端点 URL 但我什至无法检测到反应本机代码内的构建类型 而不必求助于 D
  • 是否可以将数组或对象添加到 Android 上的 SharedPreferences

    我有一个ArrayList具有名称和图标指针的对象 我想将其保存在SharedPreferences 我能怎么做 注意 我不想使用数据库 无论 API 级别如何 请检查SharedPreferences 中的字符串数组和对象数组 http
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • Android SIP 来电使用带有广播接收器的服务

    大家好 其实我正在尝试创建一个应用程序 支持基于 SIP 通过互联网进行音频呼叫 这里使用本机 sip 我遇到了来电问题 我已经完成了服务的注册部分 但是在接听电话时我无法接听电话 请帮助我 Service file package exa
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL

随机推荐

  • 如何在 Eclipse 中的选定文本周围添加引号

    在编程过程中 我无数次需要在文本两边加上引号 我记得不久前 我看到有人选择文本 然后简单地使用键盘快捷键并在其周围加上引号 怎么办呢 日食中 1 Window gt Preferences gt Java gt Editor gt Temp
  • 如何使用js或jquery从中删除所有属性

    如何使用 js 或 jquery 删除所有属性 我不知道body里的属性是什么 我想把它们全部删除 您可以使用 DOM Level 1 Coreattributesproperty 以列表形式访问属性 作为普通的 JS function r
  • 如何在python 3.8中安装opencv-python

    我在 pycharm 中安装 opencv python 时遇到问题 打开 pycharm 后 我单击 设置 然后单击 项目解释器 单击 并搜索正确的模块 我开始安装 但失败了 Could not find a version that s
  • 将第二个 UIWindow 与 rootViewController 一起使用时,界面旋转变黑

    iOS 7 0 3 Xcode 5 0 1 我的应用程序中有第二个 UIWindow 用于在状态栏上方显示自定义放大镜 但是 一旦我设置了该窗口的 rootViewController 用于界面旋转和其他一些东西 主窗口在界面旋转动画期间就
  • FileAttributes.Encrypted 在 C# 中如何工作?

    我在谷歌上没有找到任何例子 任何人都可以展示它是如何工作的吗 当文件夹和文件被加密时如何解密 Link 文件属性枚举 http msdn microsoft com en us library system io fileattribute
  • ILMerge 最佳实践

    你用ILMerge吗 您是否使用 ILMerge 合并多个程序集以简化 dll 的部署 在将程序集合并在一起后 您是否发现生产中的部署 版本控制存在问题 我正在寻找一些有关使用 ILMerge 减少部署摩擦的建议 如果可能的话 我将 ILM
  • 有一种方法可以在 MongoDB 中强制引用完整性 [重复]

    这个问题在这里已经有答案了 当您搜索与 Mongo DB 相关的引用完整性时 标准响应是 MongoDB 不支持此 标准解释是 MongoDB 支持 refs 和 populate 但是没有什么可以阻止您将 ref 更改为无效值 对于许多具
  • 角度材料设计布局

    How can I design a layout with angular material layout like 我举了一个例子材料设计 http www google com design spec layout structure
  • SMP 上如何处理中断?

    SMP 对称多处理器 多核 机器上如何处理中断 内存管理单元是只有一个还是多个 假设两个线程 A 和 B 运行在不同的内核上 同时 访问页表中不存在的内存页面 在这种情况下 将会出现页面错误 并从内存中引入新页面 将会发生的事件的顺序是什么
  • #1214 - 使用的表类型不支持 FULLTEXT 索引

    我收到一条错误消息 指出该表类型不支持 FULLTEXT 索引 我怎样才能实现这个目标 这是我的桌子 CREATE TABLE gamemech chat id bigint 20 unsigned NOT NULL auto increm
  • D3js 从数组而不是文件中获取数据

    我发现了这个优秀的 d3js 图表here http bl ocks org Caged 6476579 但就我而言 我希望此图表从数组而不是 tsv 文件中获取值 我想让它从表 中获取值 我怎样才能做到这一点 因为它使用一个函数来实现这一
  • 在 Android Pie 上启动 context.startService(intent)

    我在 Activity 的 onResume 上启动了一项服务 它在 Oreo 上运行良好 但最近我看到 Android P 崩溃 显示 无法恢复 Activity 不允许启动服务意图 应用程序在后台 有没有人以前见过这个并且能够应用修复
  • 如何在 ESLint 中支持 ES7

    我有一个使用 WebPack 来使用 ESLint 的项目设置 并且我想使用 ES7 作为内联绑定运算符 目前我收到如下所示的解析错误 Users ryanvice Documents Code pluralsight redux star
  • 通过 ObservableObject 向下传递 GestureState 属性

    我有一个ObservableObject其成员属性为 GestureState包装纸 在我看来 我如何访问GestureState财产 我已经尝试过使用点表示法 绑定尝试公开 GestureState 但它不喜欢那样 我的应用程序状态Obs
  • Cosmos DB 中查询之间的日期

    我正在 Cosmos DB 中构建一个简单的事件存储 该存储的文档结构如下 id e4c2bbd0 2885 4fb5 bcca 90436f79f155 entityType contact history startDate 15046
  • springSecurityService.principal 在 tomcat 8.5 中部署为 WAR 时返回 Null

    Preamble 我正在为 Grails 微服务联盟设计一个 API 网关 这个问题似乎与此中已提交的一系列问题有关存储库 https github com grails plugins grails spring security cor
  • 我可以将我的heroku git repo导入bitbucket吗?如何?

    我的笔记本电脑坏了 我需要从另一台计算机上编码 我正在使用 Heroku 我想将最新版本的代码从 Heroku 获取到另一台机器 据我了解 强烈建议使用 GitHub 或 BitBucket 获取适当的远程存储库 我决定尝试一下 BitBu
  • 是否可以更改 TeamCity 的工件路径

    teamcity 工件的默认路径是 C User BuildServer system artifacts 我怎样才能将其更改为 d TeamCity Artifacts Thanks 对我来说默认是 D BuildServer syste
  • Xcode 5:单元测试未运行

    我创建了一些测试用例 它们都通过了 那是因为它们没有被运行 从 Xcode 中 我得到 Test Suite All tests started at Test Suite All tests finished at Executed 0
  • Android itemizedOverlay 的 onTap 操作被覆盖

    我有一堂课 class MapItemizedOverlay extends com google android maps ItemizedOverlay