如何禁用操作栏菜单项的长按事件?

3
在Android中,我创建了一个操作栏并添加了一些菜单项。当我点击菜单项时,会执行一些操作。
在长按时,我会发现一个空的toast消息。我的问题是如何禁用长按时的toast?
3个回答

5

不要试图禁用空的“toast-like”视图,而是可以添加“android:title”属性来描述操作的实际作用。

例如:

    <item android:id="@+id/action_websearch"
      android:icon="@drawable/action_search"
      android:title="@string/action_websearch"
      android:showAsAction="ifRoom|withText" />

这个能正确显示文本,但是界面看起来不太好。你有什么想法怎样改变弹出信息的风格吗?我一直在找方法,但是没有成功。 - eimmer
我正在使用appcompat库,并使用setSupportActionBar(toolbar)创建工具栏,但是尽管我将标题和showAsAction设置为ifRoom | withText,就像您的示例一样,但长按时气泡消息却没有显示出来。你有什么想法吗? - Bruce

3

在 menu_add_key 布局中引用自定义布局:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tumblr="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/menuAddKey"
    android:actionLayout="@layout/item_addkey"
    android:showAsAction="always"
    android:title=""/>

</menu>

将您的 item_addkey 布局定义为您想要的样式

在Java代码中:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_add_key, menu);
    menu.findItem(R.id.menuAddKey).getActionView().setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
                showAddKeyDialog("");
            }
    });
    return true;
}

0

禁用菜单项的长按功能:

menu.findItem(R.id.menuAddKey).getActionView()  return null

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接