我想在两个按钮上使用弹出菜单。 我现在的方法是制作两个不同的xml文件popup_menu1.xml和popup_menu2.xml,分别为每个按钮button1和button2充气。
Popup-menu-1有两个菜单项,而popup-menu-2有四个菜单项。
附加了图片以提供更多说明。
popup_menu1.xml有两个菜单项,是一个独立的xml文件,
popup_menu2.xml有四个菜单项,也是一个独立的xml文件,
每个文件都为各自的按钮进行充气。
我的问题是:我是否可以仅使用(充气)一个xml文件,而不是为两个按钮制作两个不同的xml文件,并显示两个不同的弹出菜单?
感谢任何帮助。
谢谢!
P.S:我想添加图片以提供更清晰的解释,但由于我是新会员,他们不允许我这样做。
代码已添加: popup_menu1:File1
每个文件都为各自的按钮进行充气。
我的问题是:我是否可以仅使用(充气)一个xml文件,而不是为两个按钮制作两个不同的xml文件,并显示两个不同的弹出菜单?
感谢任何帮助。
谢谢!
P.S:我想添加图片以提供更清晰的解释,但由于我是新会员,他们不允许我这样做。
代码已添加: popup_menu1:File1
<menu xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu001">
<group android:id="@+id/group_popupmenu">
<item android:id="@+id/menu1"
android:title="Today's Date"/>
<item android:id="@+id/menu2"
android:title="Custom Date"/>
</group>
</menu>
弹出菜单2: 文件2
<menu xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu002">
<group android:id="@+id/group_popupmenu">
<item android:id="@+id/menu1"
android:title="Last Seven (07) Days"/>
<item android:id="@+id/menu2"
android:title="Today"/>
<item android:id="@+id/menu003"
android:title="Yesterday"/>
<item android:id="@+id/menu4"
android:title="Last Twenty Eight (28) Days"/>
</group>
</menu>
编辑版本1:
在活动类中的代码:
// add a click listener to the first button
startDateButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
PopupMenu popup = new PopupMenu (CampaignDetailsActivity.this, view);
popup.getMenuInflater().inflate(R.layout.popup_menu_01, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()){
case R.id.menu1:
// some code here
case R.id.menu2:
// some code here
}
return true;
});
popup.show();
}
});
// add a click listener to the end date button
endDateButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View button) {
PopupMenu popup = new PopupMenu (TestAdlikelyButtonsAndMenuActivity.this, button);
popup.getMenuInflater().inflate(R.layout.popup_menu2, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()){
case R.id.menu1:
// some code here
case R.id.menu2:
// some code here
case R.id.menu003:
// some code here
case R.id.menu4:
// some code here
}
return true;
}
});
popup.show();
}
});
图片: