我写了一个小测试程序,试试popup menues是如何工作的。 菜单不是静态的,而是动态填充的。菜单条目的ID为1和2。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_atctour_list);
final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabATCTourListAddTour);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu menu = new PopupMenu(fab.getContext(), v);
menu.getMenu().add(Menu.NONE, 1, 1, "Entry 1");
menu.getMenu().add(Menu.NONE, 2, 2, "Entry 2");
menu.show();
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int i = item.getItemId();
if(i == 1) {
return true;
} else if(i == 2){
return true;
} else {
return false;
}
}
});
}});
}
在onMenuItemClick方法中,我试图找出已选择的条目。结果是if子句总是在else条件下运行。
调试显示选择项目1/2会生成id 1/2。与1/2的比较从不匹配。
我不知道什么是错的。任何帮助都会很好。