如何在 Android 上的 ListActivity 中实现上下文菜单?

2024-01-13

如何实现通过长按或点击使用内置布局和 ListAdapter 的 ListActivity 触发的上下文菜单?


在 onCreate 方法调用上注册上下文菜单 http://developer.android.com/reference/android/app/Activity.html#registerForContextMenu(android.view.View)像这样:

registerForContextMenu(getListView());

然后填充菜单onCreateContextMenu(ContextMenu菜单,View视图,ContextMenuInfo menuInfo) http://developer.android.com/reference/android/app/Activity.html#onCreateContextMenu(android.view.ContextMenu,%20android.view.View,%20android.view.ContextMenu.ContextMenuInfo)。 menuInfo 参数可以通过以下方式提供有关长按哪个项目的信息:

AdapterView.AdapterContextMenuInfo info;
try {
    info = (AdapterView.AdapterContextMenuInfo) menuInfo;
} catch (ClassCastException e) {
    Log.e(TAG, "bad menuInfo", e);
    return;
}
long id = getListAdapter().getItemId(info.position);

然后您以通常的方式添加菜单项menu.add http://developer.android.com/reference/android/view/Menu.html#add(int,%20int,%20int,%20java.lang.CharSequence):

menu.add(0, MENU_ITEM_ID, 0, R.string.menu_string);

当用户选择一个选项时,onContextItemSelected 事件 http://developer.android.com/reference/android/app/Activity.html#onContextItemSelected(android.view.MenuItem)叫做。还选定菜单项 http://developer.android.com/reference/android/app/Activity.html#onMenuItemSelected(int,%20android.view.MenuItem)文档中没有明确解释这一事实,只是说您使用其他方法从上下文菜单接收调用;请注意,不要共享 ID。

在 onContextItemSelected 上,您可以通过调用获取 MenuInfo 以及所选项目的 id获取菜单信息() http://developer.android.com/reference/android/view/MenuItem.html#getMenuInfo():

try {
    info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
} catch (ClassCastException e) {
    Log.e(TAG, "bad menuInfo", e);
    return false;
}
long id = getListAdapter().getItemId(info.position);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 上的 ListActivity 中实现上下文菜单? 的相关文章

  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Android - 如何一次只允许播放一个 MediaPlayer 实例?

    我正在尝试创建一个简单的 Sound board Android 应用程序 使用 ListView 项目作为按钮 顺便说一句 我是一个新手程序员 我的想法是 我按下一个按钮 就会播放一个特定的声音文件 如果我在播放声音时按下任何按钮 它应该
  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • Android:“dp”到“px”转换?

    我正在读这篇文章 http developer android com guide practices screens support html http developer android com guide practices scre
  • 无法在自定义 AOSP 上安装 Google Play 中的某些应用程序:项目不可用。理由:9

    我在尝试从 Google Play 安装某些应用程序时收到以下错误 LibraryUtils isAvailable not available restriction 9 DocUtils getAvailabilityRestricti
  • 设置从 Facebook 登录获取用户电子邮件 ID 的权限

    我在用着Facebook 3 0 SDK对于安卓 我必须实施Facebook登录 我正在访问用户的基本信息 例如姓名 用户 ID 但我也想访问用户的电子邮件 我浏览了很多博客和论坛 但不知道该怎么做 我正在使用我自己的 android 按钮
  • 如果我们使用后退按钮退出,为什么 Android 应用程序会重新启动?

    按住主页按钮并返回应用程序时 应用程序不会重新启动 为什么使用后退按钮会重新启动 如果我们使用后退按钮退出 有什么方法可以解决在不重新启动的情况下获取应用程序的问题吗 请帮忙 当您按下Home按钮 应用程序将暂停并保存当前状态 最后应用程序
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 在意图过滤器中使用多个操作时的默认值

    尝试理解 Android 中的意图和操作并查看文档 http developer android com guide topics intents intents filters html 但我一直看到的一件事是定义了多个操作的意图过滤器
  • 已经使用 AsyncTask doInBackground 但新数据未显示

    我使用 AsyncTask 创建一个聊天室来接收消息 因此它总是检查即将到来的消息并将其显示给客户端 但代码似乎无法按我希望的方式工作 在客户端只显示所有旧数据 新数据不显示 因为当我尝试从服务器发送消息时 新数据没有显示在客户端中 我对这
  • 更新到材质 1.2.0 后,材质按钮上缺少圆角半径属性

    这是我的材质按钮代码
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • 从 Firebase 数据库填充微调器

    public class MainActivity extends AppCompatActivity DatabaseReference reference Spinner areaSpinner ArrayList
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • Android 启动器快捷方式

    我制作了一个简单的打卡 打卡时钟应用程序 我想向用户添加在主屏幕上创建快捷方式的选项 该快捷方式将切换应用程序的状态 超时 超时 但我根本不希望此快捷方式在屏幕上打开应用程序 这是我的 setupShortcut private void
  • 使用 Matrix.setPolyToPoly 选择位图上具有 4 个点的区域

    我正在 Android 上使用位图 在使用 4 个点选择位图上的区域时遇到问题 并非所有 4 点组都适合我 在某些情况下 结果只是一个空白位图 而不是裁剪后的位图 如图所示 并且 logcat 中没有任何错误 甚至是内存错误 这是我用来进行
  • Android构建apk:控制MANIFEST.MF

    Android 构建 APK 假设一个 apk 包含一个库 jar 例如 foo jar 该库具有 META INF MANIFEST MF 这对于它的运行很重要 但在APK中有一个包含签名数据的MANIFEST MF 并且lib jar
  • Android:有没有办法以毫安为单位获取设备的电池容量?

    我想获取设备的电池容量来进行一些电池消耗计算 是否可以以某种方式获取它 例如 三星 Galaxy Note 2 的电池容量为 3100mAh 谢谢你的帮助 知道了 在 SDK 中无法直接找到任何内容 但可以使用反射来完成 这是工作代码 pu
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 具有固定顶部菜单的语义 UI 侧边栏

    Semantic UI 对其进行预警侧边栏页面 http semantic ui com modules sidebar html usage 当侧边栏出现时 固定位置内容可能会出现改变其位置的问题 然后它提供了该问题的两种可能的解决方案

随机推荐

  • Woocommerce 结账页面中的自定义统一费率描述文本

    我在运输区域内设置了两种统一费率运输方式 结帐时这两种运输方式都可用 我想在每个统一费率运输选项下显示文本说明 WooCommerce 中似乎没有任何选项可以执行此操作 我已经尝试过以下代码 但不用说它不起作用 add filter woo
  • 明白ES6中数组的区别了吗?

    所以我有两个数组 const allLanguages ES EN DE const usedLanguages id 1 lang EN 生成新数组的最快方法是什么 这两者之间有什么区别 在老式的 JavaScript 中 你必须在另一个
  • Android 中的图像视图上的文本叠加

    我正在尝试将文本视图覆盖在图像视图上 像这样的东西 有人可以帮我解决代码吗 将TextView和ImageView包裹到FrameLayout中 将TextView放在FrameLayout中ImageView之后 然后 将 FrameLa
  • debounce 不适用于 Angular 中的 keyup 事件

    我有一个text box输入一些文本来搜索记录 我在用data ng model options debounce 1000 with keyup event data ng model options 工作正常 但我想解雇keyup事件之
  • 删除特定列中第一次出现 NaN 后的所有行(pandas)

    我正在尝试使用 pandas 中的 dropna 函数 我想将它用于特定的列 如果所有行都有所有 NaN 值 我只能弄清楚如何使用它来删除 NaN 我有一个数据框 见下文 我想在第一次出现 NaN 后删除所有行specific列 A 列 当
  • AWK:使用正则表达式缩短 if-then-else

    AWK 格式如下 REGEX Action 将执行Action如果当前行匹配REGEX 有没有办法添加一个else子句 如果当前行与正则表达式不匹配 则将执行该子句 而不显式使用 if then else 如下所示 REGEX Action
  • C 是否对浮点常量进行舍入

    关于Go中浮点精度的一个问题 https stackoverflow com questions 22337418 golang floating point precision float32 vs float64让我想知道C是如何处理这
  • 如何在VB.Net面板中获取滚动条?

    我正在 VB Net 中开发 Windows 应用程序 在这种情况下 有一种情况 有一个表单 在该表单中有一个面板 面板内有一个富文本框 所以我的要求是在面板中获得一个滚动条 因此 当用户在面板上滚动时 富文本框可以像 MS Office
  • JSONP 调用显示“未捕获的语法错误:意外的标记:”

    这是我的代码 ajax url https api flightstats com flex schedules rest v1 json flight AA 100 departing 2013 10 4 appId 19d57e69 a
  • 如何使用 SoapClient 类进行 PHP SOAP 调用

    我习惯于编写 PHP 代码 但不经常使用面向对象的编码 我现在需要与 SOAP 交互 作为客户端 但无法获得正确的语法 我有一个 WSDL 文件 它允许我使用 SoapClient 类正确设置新连接 但是 我无法真正做出正确的调用并获取返回
  • NSNumberFormatter 前导 0 和小数

    有什么方法可以格式化带有前导 0 和小数的 NSNumber 吗 例如 我需要能够写 4 5 和 000 目前我拥有它 它允许小数 但不允许前导 0 NSNumberFormatter f NSNumberFormatter alloc i
  • 用C#改变单元格的背景

    我正在开发一个使用 C 来操作 Excel 文档的程序 并且我正在使用 Microsoft Office Interop Excel Worksheet worksheet 当我将某些内容插入 x y 单元格时 我使用 worksheet
  • 在 free() 后将指针设置为 NULL 总是一个好习惯吗? [复制]

    这个问题在这里已经有答案了 可能的重复 释放后将变量设置为 NULL https stackoverflow com questions 1025589 setting variable to null after free 我正在学习良好
  • java.exe 的服务器选项

    服务器热点和客户端热点有什么区别 有什么理由将生产环境切换到 server 请分享您的实践经验 有性能提升吗 与 Oracle UCM 10g 相关 是的 可以有一个huge在某些情况下性能提升 在对我的 Protocol Buffers
  • 在java中设置代理

    我创建了一项通过互联网发布内容的服务 一切都很好 但是当我将其部署到我们的服务器时 我得到连接状态 403 禁止 我认为这是因为我们的服务器不允许在未先登录的情况下直接访问互联网 我们必须首先使用我们的用户名 密码在浏览器中登录才能访问互联
  • 通过地址栏加载远程 JavaScript 文件

    是否可以从地址栏加载远程 JavaScript 文件 我一直试图将其放入地址栏 javascript src http depot com file js funcname 我不会用它来做坏事 我只是测试我的网站 仅此而已 如果你想保护你的
  • 如何将 javaw.exe 控制台输出重定向到日志文件?

    我想从批处理文件启动我的 Java 程序 这是我想用来启动应用程序的脚本 但问题是我无法将控制台输出重定向到日志文件 任何人都可以提供任何提示 而无需编辑任何代码 并使用 Java 命令行选项或其他东西吗 echo off set TASK
  • 如何在不换行的情况下打印完整的 NumPy 数组(在 Jupyter Notebook 中)

    这个问题与这个问题不同 如何打印完整的 NumPy 数组而不截断 https stackoverflow com questions 1987694 how to print the full numpy array without tru
  • Android Studio 在 M1 Apple Silicon 芯片上非常滞后

    我已从第 7 代升级到 M1 芯片 2020 Macbook Air 英特尔芯片电脑 总的来说 我对此感到非常高兴和满意 但当谈到我经常使用的 Android Studio 性能时 我很抱歉地说 非常令人失望 Apple Silicon 兼
  • 如何在 Android 上的 ListActivity 中实现上下文菜单?

    如何实现通过长按或点击使用内置布局和 ListAdapter 的 ListActivity 触发的上下文菜单 在 onCreate 方法调用上注册上下文菜单 http developer android com reference andr