MenuInfo не передаётся в подменю
Элементам списка задано контекстное меню, MenuItem.getMenuInfo() для элементов корневого меню работает как положено, но для элементов подменю выдаёт null.
При этом в onContextItemSelected() нет никакой возможности получить ссылку на элемент, которому принадлежит подменю или к самому меню.
Так как же тогда получить информацию об элементе списка, для которого меню было вызвано?
меню:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/root_item_1"
android:title="root_item_1" />
<item
android:id="@+id/root_item_2"
android:title="root_item_2" />
<item
android:id="@+id/root_item_3"
android:title="root_item_3">
<menu>
<item
android:id="@+id/sub_item_1"
android:title="sub_item_1" />
<item
android:id="@+id/sub_item_2"
android:title="sub_item_2" />
</menu>
</item>
</menu>
@Override
public void onCreateContextMenu(@NonNull ContextMenu menu, @NonNull View v,
ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater inflater = requireActivity().getMenuInflater();
inflater.inflate(R.menu.context_main, menu);
}
public boolean onContextItemSelected(MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.root_item_1) {
Log.d(TAG, item.getTitle() + ": " + item.getMenuInfo()); // root_item_1: {android.widget.AdapterView$AdapterContextMenuInfo@12345}
} else if (itemId == R.id.sub_item_1) {
Log.d(TAG, item.getTitle() + ": " + item.getMenuInfo()); // sub_item_1: null
}
return true;
}