单击时菜单项不执行任何操作

时间:2015-09-25 03:02:23

标签: android

所以我的弹出菜单有问题。它工作正常,但单击菜单项时没有任何反应。这是menuButton的onClick事件:

menuButton.setOnClickListener(new View.OnClickListener() {  
                public void onClick(View v) {    
                    PopupMenu popup = new PopupMenu(MainActivity.this, menuButton);  
                    popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());  

                    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {  
                        public boolean onMenuItemClick(MenuItem item) {  
                            if(item.getTitle() == "Stats") {
                                Intent intent = new Intent(activity, StatsActivity.class);
                                activity.startActivity(intent);
                            } else if(item.getTitle() == "Reset") {
                                Intent intent = new Intent(activity, PrestiegeActivity.class);
                                activity.startActivity(intent);
                            }
                            return true;  
                        }  
                    });  

                    popup.show(); 
                }  
            });

popup_menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item  
        android:id="@+id/Stats"  
        android:title="Stats"/>  

    <item  
        android:id="@+id/Reset"  
        android:title="Reset"/>  

    <item  
        android:id="@+id/three"  
        android:title="Three"/>  
</menu>

我不确定问题出在哪里。

1 个答案:

答案 0 :(得分:1)

不要与标题字符串进行比较。而是比较id。

switch (item.getItemId()) {
    case R.id.Stats:
        doStuff();
        return true;
    case R.id.Reset:
        ...
        return true;
}

此外,您无法将字符串与==运算符进行比较。相反,您必须使用theString.equals(theOtherString)