android - 我需要帮助在 android 上制作长按上下文菜单

标签 android contextmenu

好吧,现在读完之后我确实有一个菜单,就像我想要的那样长按......唯一的问题是它实际上并没有获取声音文件并保存它

我想知道我现在做错了什么?这是我使用的代码:

Button SoundButton1 = (Button) findViewById(R.id.money);  
        registerForContextMenu(SoundButton1);
    }

     @Override  
        public void onCreateContextMenu(ContextMenu menu, View v, 
                ContextMenuInfo menuInfo) { 
            super.onCreateContextMenu(menu, v, menuInfo);
            menu.setHeaderTitle("Save as..."); 
            menu.add(0, MENU_RINGTONE, 0, "Ringtone"); 
            menu.add(0, MENU_NOTIFICATION, 0, "Notification"); 
    } 

     @Override  
        public boolean onContextItemSelected(MenuItem item) {  
            if(item.getTitle()=="Ringtone"){function1(item.getItemId());}  
            else if(item.getTitle()=="Notification"){function2(item.getItemId());}  
            else {return false;}  
        return true;  
        }  

        public void function1(int id){  
            Toast.makeText(this, "Ringtone saved", Toast.LENGTH_SHORT).show();  
        }  
        public void function2(int id){  
            Toast.makeText(this, "Notification saved", Toast.LENGTH_SHORT).show();  
        }

最佳答案

您没有正确比较 Strings。这个测试:

if(item.getTitle()=="Ringtone")

检查getTitle() 返回的对象 是否与"Ringtone" 是同一个对象。这将始终为 false。与 else if 测试类似。您实际上想要将 getTitlevalue 与您的 String 进行比较。您应该用 String#equals() 方法替换它们。这是代码:

if(item.getTitle().equals("Ringtone")){function1(item.getItemId());}  
else if(item.getTitle().equals("Notification")){function2(item.getItemId());}  
else {return false;}

关于android - 我需要帮助在 android 上制作长按上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4866656/

相关文章:

java.lang.NoSuchMethodException : android. content.res.Resources$Theme.rebase []

javascript - 在所有平台(包括 iOS、ANDROID)的 Delphi XE6 上通过 javascript 从 TWebBrowser 回调 Delphi 函数?

android - 在 jetpack compose 中仅限制 TextField 中的数字

Android - 类似旋转木马的小部件,显示左右元素的一部分

macos - 丰富的、类似窗口的上下文菜单(如 Interface Builder)

c# - 如何在 Winforms 中更改 ToolStripItem 的选中状态?

ios - 如何显示带有预览的上下文菜单?

java - 带 ExpandableList 的 PullToRefresh 布局

c# - 在隐藏按钮上触发 Button.PerformClick()

javascript - 如果在 IE 中的 body 元素上使用边距,则 Jquery offset 不会给出预期值