Dmy*_*nko 12 xml resources parsing android menu
我无法解决这个问题3天.我有简单的菜单XML资源
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/categoryEditButton"
android:title="@string/edit"
android:icon="@drawable/edit" />
<item android:id="@+id/categoryMoveUpButton"
android:title="@string/move_up"
android:icon="@drawable/up" />
<item android:id="@+id/categoryMoveDownButton"
android:title="@string/move_down"
android:icon="@drawable/down" />
<item android:id="@+id/categoryDeleteButton"
android:title="@string/delete"
android:icon="@drawable/trash" />
</menu>
Run Code Online (Sandbox Code Playgroud)
我希望在解析此XML后接收List <MenuItem>:
public class MenuItem {
private CharSequence text;
private Drawable image;
private int actionTag;
//... getters and setters ...
}
Run Code Online (Sandbox Code Playgroud)
我需要使用MenuItems进行非标准操作,并且不能使用标准方法使用此Resourse:
...
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.some_menu, menu);
...
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我吗?谢谢.
小智 23
这将有助于:
...
PopupMenu p = new PopupMenu(this, null);
Menu menu = p.getMenu();
getMenuInflater().inflate(R.menu.some_menu, menu);
//Usage of menu
System.out.println("LOG id: "+ menu.getItem(0).getItemId());
System.out.println("LOG title: "+ menu.getItem(0).getTitle());
System.out.println("LOG icon: "+ menu.getItem(0).getIcon());
...
Run Code Online (Sandbox Code Playgroud)
创建一个PopupMenu只是一个创建一个Menu对象的技巧,当膨胀时将填充xml上定义的信息.