android - 自定义 EditText 的 ActionMenu

标签 android android-actionbar android-actionbar-compat

我想为 EditText 提供简单的格式化按钮,例如,插入 <strong></strong> 的按钮如果未选择任何文本,则将所选文本包装在 <strong> 中否则标记。

我将支持库 v7 与 ActionBarCompat 一起使用.我设法启动了自定义 ActionMode在我的焦点改变后 EditText .但是,当我长时间触摸那个 EditText 中的文本时, 另一个 ActionMode菜单打开时带有复制/粘贴/...按钮,这大概是 Android 的默认行为。我怎样才能取消第二个菜单,但仍然让用户选择 EditText 的部分内容?的内容?

或者,我希望能够使用 setCustomSelectionActionModeCallback(...) 自定义默认菜单但使用支持库。我怎么能那样做?

最佳答案

不幸的是,TextViewEditText 没有提供 API 供您使用 ActionBarCompat 类。但是,您应该能够覆盖此行为。

设置自定义 onLongClickListener,您可以在其中设置自己的 Activity 状态信息并调用 supportInvalidateOptionsMenu()。确保从您的 OnLongClickListener.onLongClick() 方法返回“true”,表明您使用了点击。然后,在您的 onPrepareOptionsMenu 中,您可以为自定义操作栏添加您希望的任何新菜单项。为了安全起见,我建议不要使用 TextView 上下文菜单项 ID“selectAll”、“cut”、“copy”和“paste”。

关于android - 自定义 EditText 的 ActionMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21341833/

相关文章:

android - 如何使用带有 fragment 的操作栏选项卡创建 ListView ?

android - AppCompat 库对我来说似乎无法正常工作

android - 如何自定义Action Bar字幕字体?

java - 在显示 Firebase 查询的 RecyclerView 的开头插入对象

android - Google 登录按钮没有任何反应

android - 如何删除 ActionBar 和选项卡之间的分隔线

android - 如何根据 fragment 的类型设置 fragment 的操作栏和左抽屉属性

android - 平板电脑/手机上的 backbone.js 和调试

android - 使用 Firebase Cloud 函数获取当前日期和时间

Android ActionBar 始终为空