Android 向动态生成的菜单项添加长按

Android 向动态生成的菜单项添加长按,android,Android,好的,我有一个动态菜单(在我的导航抽屉中),生成如下: 在my Main.javaonCreate()中: 将其添加到活动主抽屉中的id:myfolders: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" to

好的,我有一个动态菜单(在我的导航抽屉中),生成如下:

在my Main.java
onCreate()
中:

将其添加到
活动主抽屉中的
id:myfolders

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

    <item android:title="My Folders"
        android:orderInCategory="1"
        android:id="@+id/myfolders">
        <menu></menu>
    </item>

    <item android:checkableBehavior="single" android:orderInCategory="2">
        <menu android:id="@+id/about_menu">
            <item  android:id="@+id/system_about"
                    android:title="About"
                    android:icon="@drawable/ic_info" />
            </menu>
    </item>
</menu>


这一切都很完美,但是我想在我的菜单项中添加longpress功能。我不知道该怎么做,有人能帮忙吗?

您可以从
菜单中获得
菜单项。add()
然后您可以调用:

menuItem.getActionView().setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        return false; // true
    }
});

但在您设置操作视图之前:
menuItem.setActionView(new ImageButton(this))

谢谢您-我已经开始工作了-从
view v
对象,但是我如何知道我正在单击哪个菜单项?试试这个v.getResources().getResourceEntryName(v.getId());您好,我对这段代码有一个问题,您能看看我的新问题吗:不管它值多少钱,尝试用新的ImageButtonThanks替换新视图。这使它变得更容易,尽管它并不理想:(
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="navigation_view">

    <item android:title="My Folders"
        android:orderInCategory="1"
        android:id="@+id/myfolders">
        <menu></menu>
    </item>

    <item android:checkableBehavior="single" android:orderInCategory="2">
        <menu android:id="@+id/about_menu">
            <item  android:id="@+id/system_about"
                    android:title="About"
                    android:icon="@drawable/ic_info" />
            </menu>
    </item>
</menu>
menuItem.getActionView().setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        return false; // true
    }
});