好吧,现在读完之后我确实有一个菜单,就像我想要的那样长按......唯一的问题是它实际上并没有获取声音文件并保存它
我想知道我现在做错了什么?这是我使用的代码:
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
测试类似。您实际上想要将 getTitle
的 value 与您的 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/