Android onCreateContextMenu 和 onContextItemSelected 中的 NULL menuInfo 仅在 onListItemClick 中手动调用 openContextMenu 时出现。长按有效

2024-01-10

我已经解析了这里的很多帖子,但没有发现任何像我的问题一样的东西。

基本上我想打电话openContextMenu(l) in onListItemClick。这样做会创建一个没有内容的上下文菜单menuInfo。长按即可正常工作。执行长按后,我的代码将开始工作并实际上得到一个menuInfo那不是空的。

我有一个ListActivity充满了SimpleCursorAdapter它从以下位置获取数据SQL.

在我的 onCreate 我registerForContextMenu(getListView())。 我也尝试过使用registerForContextMenu(l)就在之前openContextMenu(l) call.

任何帮助,将不胜感激!谢谢。

这是我的代码示例:

public class MY_Activity extends ListActivity {

...

@Override
public void onCreate(Bundle savedInstanceState) {

    ...

    UpdateTable();
    registerForContextMenu(getListView());
}

...

@Override
public void onListItemClick(ListView l, View view, int position, long id) {
    super.onListItemClick(l, view, position, id);

    //THIS DOESNT WORK UNLESS A LONG CLICK HAPPENS FIRST
    //registerForContextMenu(l);  //Tried doing it here too
    openContextMenu(l);
    //unregisterForContextMenu(l); //Then unregistering here...
}

@Override  
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo);  

    //menuInfo will be null here.

    menu.setHeaderTitle("Context Menu");
    menu.add(0, v.getId(), 0, "One");  
    menu.add(0, v.getId(), 0, "Two");
    menu.add(0, v.getId(), 0, "Three");
}

@Override  
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    if(info == null) {
        Log.e("","NULL context menu intem info...");
        return false;
    }
}

public void UpdateTable() {
    cursor = DatabaseHelper_Main.GetCursor(my_id);
    cursorAdapter = new SimpleCursorAdapter(this, R.layout.my_listview_entry, 
            cursor, fields, fieldResources, 0);
    setListAdapter(cursorAdapter);
}

...

我今天遇到了非常相似的问题,修复出乎意料地简单,但我不明白为什么,但无论如何我都会将其发布在这里。

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    m_contextMenu = true;
    registerForContextMenu(parent);
    m_listView.showContextMenuForChild(view);
    unregisterForContextMenu(parent);
    m_contextMenu = false;
}

我使用 m_contextMenu 布尔值来指示正在显示上下文菜单,如果 m_contextMenu 为 true,我有一个 onItemLongClickListener 返回 false,以便显示上下文菜单(如果 onItemLongClick() 返回 true,则不会显示上下文菜单)。

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

Android onCreateContextMenu 和 onContextItemSelected 中的 NULL menuInfo 仅在 onListItemClick 中手动调用 openContextMenu 时出现。长按有效 的相关文章

  • 显示警报或收到通知时的视图

    我正在关注this http tokudu com 2010 how to implement push notifications for android 显示的教程通知 on an 安卓设备 当我在设备上运行该应用程序时 状态栏上会出现
  • 应用程序实例是否始终在任何活动之前创建?

    在 Android 中 您可以通过扩展 Application 类并在 Manifest 中声明名称来提供您自己的 Application 类实现 我的问题是 这个实现是否总是在初始活动之前创建 或者活动可以在应用程序实例有时间创建之前启动
  • 如何将 EditText 传递给另一个活动?

    Intent intent new Intent this Name class intent putExtra key et getText toString startActivity intent Intent intent getI
  • SQLite (Android):使用 ORDER BY 更新查询

    Android SQLite 我想要在 myTable 中的其他行之间插入行在android中使用SQLite 为此 我尝试增加从第 3 行开始的所有行的 id 这样 我就可以在位置 3 处插入新行 myTable 的主键是列 id 表中没
  • 在 WebView 中完成 AdBlock

    我即将在我的 Android 应用程序中推出 WebView AdBlocking 我想知道这是否会有效地阻止广告 或者在 Webview 本身内是否还有更多工作要做 我尚未修改 基本上我有一个存储在 Android 资产中的主机文件 其中
  • 为什么按钮上的 maxWidth 不起作用以及如何解决它?

    我的布局上有两个按钮 在大屏幕设备 平板电脑 上我想限制它们的宽度 这样它们看起来就不会很荒谬 我希望使用 maxWidth 属性 但它显然在我的场景中没有任何作用 这是布局定义 按钮使用布局的整个宽度 忽略 maxWidth 中的任何值
  • 如何在 Firebase 远程配置中从 JSON 获取值

    我是 Android 应用开发和 Firebase 的新手 我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值 String 和 Int 我使用 Firebase Remote Config 的最终目标是
  • SQLite支持android的数据类型有哪些

    谁能告诉我 SQLITE 中支持 ANDROID 的数据类型列表 我想确认 TIME 和 DATE 数据类型 这里有一个list http www sqlite org datatype3 htmlSQLite 的数据类型 支持时间和日期间
  • 从多个选项卡中的编辑文本字段获取文本

    我正在尝试创建一个使用选项卡作为输入表单的 Android 应用程序 基本上 我希望对其进行设置 以便用户可以在一个选项卡上输入一些信息 然后提交该信息 或者转到另一个选项卡并输入更多信息 然后从两个选项卡提交信息 我正在使用操作栏和片段来
  • Google 移动广告和 Kindle Fire

    我最近用 Google 移动广告替换了 AdMob 库 对此我有一个疑问 广告会出现在 Amazon Kindle Fire 设备上吗 我问这个是因为我知道 Google 移动广告依赖于 Google Play 服务 所以我有点困惑 Goo
  • Integer.parseInt("0x1F60A") 以 NumberformatException 结束

    我尝试从数据库中获取长字符串内的表情符号代码 格式如下 0x1F60A 所以我可以访问代码 但它将是String 起初 我尝试通过执行以下操作来转换变量tv setText beforeEmo getEmijoByUnicode int e
  • Android模拟器分配内存失败8

    当我尝试从 Eclipse 运行 WXGA800 模拟器时 出现如下错误 Failed to allocate memory 8 This application has requested the Runtime to terminate
  • 加快 ImageView 中的缩放功能

    我目前正在处理非常大的图像 7 10mb 由于多种原因无法调整大小或压缩 现在 我们的想法是在自定义 ImageView 中显示它们 使用户能够进行双击缩放 捏合缩放等 我使用这个库来完成这项工作 https github com Mike
  • android 中camera.setParameters 失败

    我已将相机功能包含在我的应用程序中 我还在市场上推出了该应用程序 我从一位用户那里收到一条错误消息 称他在打开相机时遇到错误 我已经在 2 1 的设备上测试了该应用程序 我从用户那里得到的错误是使用 Nexus One 它主要运行 2 2
  • 如何从 Facebook 邀请好友到 Android 应用程序? - 给出错误

    我正在开发一个 Android 应用程序 我正在努力将 邀请朋友 功能添加到我的应用程序中 它转到我的AppLinkUrl成功但显示错误 我的清单代码如下
  • 如何获取android手机型号、版本、sdk详细信息?

    如何获取android手机型号 版本 sdk详细信息 首先 看看 android sdk 页面上的这些 Build 类 http developer android com reference android os Build html h
  • 检测 ListView(或 ScrollView)内的滚动位置

    我正在构建一个聊天室应用程序 其中每 X 秒就会轮询一次新事件 每次发生这种情况时 此代码都会使用新数据更新 RoomAdapter ArrayAdapter 的自定义子类 并将其滚动到底部 RoomAdapter adapter Room
  • Android - iphone 风格 tabhost [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 更改Android菜单的背景颜色[重复]

    这个问题在这里已经有答案了 我正在尝试将标准浅灰色更改为浅绿色 似乎没有一个简单的方法可以做到这一点 例如 通过 Android 主题 但我找到了一个解决方法 如本页所述 http tinyurl com 342dgn3 http tiny
  • android:layout_alignParentBottom 在没有显式布局高度作为 ListView 中的行的情况下使用时会被忽略

    当我使用RelativeLayout与任一fill parent or wrap content作为高度和一个指定的元素 android layout alignParentBottom true 它被忽略并在顶部对齐 设置高度Relati

随机推荐

  • iOS UITextField 在文本更改时更改位置

    我用它来将文本字段置于相关内容的中心 textField setCenter someObject center textField becomeFirstResponder 这看起来很棒 很漂亮 并且位于对象的中心 可以接受文本 我希望文
  • Python smtplib 代理支持

    我想通过代理发送电子邮件 我目前的实现如下 我通过身份验证连接到 smtp 服务器 成功登录后 我会发送一封电子邮件 它工作正常 但当我查看电子邮件标题时 我可以看到我的主机名 我想通过代理来传输它 任何帮助将不胜感激 Use Socksi
  • OracleConnection 生命周期 - 最佳实践

    我正在使用标准 Oracle 驱动程序连接到数据库 但对于 OracleConnection 的生命周期 我不太同意我的同事的观点 创建成本高吗 它是线程安全的吗 我可以在请求之间重复使用它 还是应该为每个请求创建一个新的 如果能更详细地解
  • 从 ExecutorService 更新 JProgressBar

    我正在使用 Java ICMP ping 功能对网关进行 ping 操作 为了执行快速 ping 我使用 ExectorService 创建用于 ping 的线程 地址被 ping 或不 后 我想在 ping 后更新 Jprogressba
  • Eclipse 和 Android XML 布局给出“‘默认’不是任何设备/区域设置组合的最佳匹配”

    这是我第一次使用 XML 布局制作应用程序 过去我总是在运行时动态生成布局 所以不用担心 我不是 Android 新手 不过 这是我第一次使用静态布局 那么这条消息到底是关于什么的呢 2010 09 22 20 43 23 Rockport
  • Bootstrap css,如何使导航栏切换始终可见?

    我想添加在移动设备上显示的按钮之一 以便打开导航栏中的折叠菜单 但到目前为止还无法做到 这里是较少的代码和 html navbar toggle always navbar toggle media min width 768px disp
  • MongoDB 汇总之前所有周的每周总和

    我有一系列 MongoDB 文档 一个示例文档是 createdAt Mon Oct 12 2015 09 45 20 GMT 0700 PDT year 2015 week 41 想象一下这些跨越一年中的所有几周 并且同一周可能有很多 我
  • Modernizr:如何检测 CSS display:table-cell 支持?

    我想用display table and display table cell对于我在支持它的浏览器中的布局 在 IE7 中 我只是想浮动我的列 因为我假设它不可能在该浏览器中工作 但无法找到有关如何使用 Modernizr 执行此操作的任
  • 如何在 matplotlib 中绘制 datetime.time ?

    我有两个要显示的数组 x datetime time 0 17 47 782000 ect y 1712 2002 ect 我正在尝试将 x 转换为 matplotlib 使用的格式 但它永远不会工作 x matplotlib dates
  • 使用 Firebase 身份验证验证 ID 令牌

    我们正在开始开发一个 Web 应用程序 并考虑使用 Firebase 身份验证来处理我们的注册流程 但是 我们不确定 ID 令牌验证的工作原理 似乎可以在 Firebase 领域之外使用其令牌来验证用户 我们正在考虑在 Google Kub
  • 如何在Delphi XE3 FireMonkey 2中的TTabControl的每个选项卡上实现关闭按钮?

    我正在尝试创建一个浏览器样式的 TabControl 在 FireMonkey FM2 中的每个选项卡上都有一个小的关闭按钮 由于 FM2 中没有 TTabsheet 和 TPageControl 组件 因此我无法使用 如何为 TPageC
  • 我的 Django 项目未加载 Bootstrap 字形

    当我加载页面时 我的终端中收到以下消息 Not Found fonts glyphicons halflings regular woff2 24 Aug 2016 17 19 36 GET fonts glyphicons halflin
  • 如何知道JQuery是否已完成加载[重复]

    这个问题在这里已经有答案了 对于某些情况 我需要使用一段 javascript 加载 jQuery 如下所示
  • 基于构建的不同 SASS/Coffeescript 变量值

    我正在尝试为前端框架创建一个构建系统 该框架将根据我部署到的位置在 SASS 可能还有 Coffeescript 中创建不同的路径 例如 我可能有一个在本地 SASS 中引用的图像文件 images image png 这在我当地的环境中运
  • 尝试从元组中删除最后一个类型失败

    我正在尝试删除元组的最后一个元素 当我在元组中只有一个元素需要删除时 它会起作用 但当我有不止一个时 事情就会出错 我不明白为什么这不起作用 这些是我收到的错误 prog cpp 在函数 int main prog cpp 24 22 错误
  • 用于检测最小化窗口的钩子 C#

    大家好 在C 中如何检测用户单击了外部程序 例如记事本 的最小化按钮 谢谢 这应该有效 public class myClass DllImport user32 dll return MarshalAs UnmanagedType Boo
  • 将 Dropzone 与 Typescript 结合使用

    我有一个使用 dropzone 4 3 并用 Typescript 编写的应用程序 在将其转换为打字稿之前 我们必须在 Dropzone 上设置一个全局变量 一切都很顺利 Dropzone autoDiscover false 我已经拉入了
  • 如何告诉调试器忽略抛出异常时的中断?

    我有一个文本框 在其中使用第三方库验证输入 但是 当语法不正确时 该库会引发自定义异常 这并不是什么大问题 除非您正在调试 调试时 由于 TextBox 中的文本最初总是错误的 我仍在输入它 因此调试器将在每个字母之后停止 直到它正确为止
  • 像 CCSprite 对象一样移动 Box2d 实体

    在cocos2d中 您可以轻松使用CCSprites并以各种方式移动它们 最重要的是 他们可以缓入 缓出 对于大多数游戏来说 这对于平滑移动等是可取的 id action CCMoveTo actionWithDuration dur po
  • Android onCreateContextMenu 和 onContextItemSelected 中的 NULL menuInfo 仅在 onListItemClick 中手动调用 openContextMenu 时出现。长按有效

    我已经解析了这里的很多帖子 但没有发现任何像我的问题一样的东西 基本上我想打电话openContextMenu l in onListItemClick 这样做会创建一个没有内容的上下文菜单menuInfo 长按即可正常工作 执行长按后 我