我想在我的应用程序中使用弹出式菜单,它应该与Android 1.6+兼容。因此,我使用此代码(取自Supporting Different Platform Versions)区分预蜂窝(没有PopupMenu)和蜂窝+显示无论是PopupMenu的或AlertDialog:Android PopupMenu“找不到类android.widget.PopupMenu'
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
PopupMenu popup = new PopupMenu(this, v);
...
} else {
showDialog(DIALOG_ID);
}
此正常工作与仿真的Android 2.1(表示AlertDialog),2.3.3(表示AlertDialog)和4.2。 2(显示PopupMenu),但它不适用于模拟的Android 1.6。我收到以下错误消息:
E/dalvikvm(211): Could not find class 'android.widget.PopupMenu', referenced from method ...
W/dalvikvm(211): VFY: unable to resolve new-instance 50 (Landroid/widget/PopupMenu;) in L...;
W/dalvikvm(211): VFY: rejecting opcode 0x22 at 0x0006
W/dalvikvm(211): VFY: rejected L...;.... (Landroid/view/View;)V
W/dalvikvm(211): Verifier rejected class L...;
W/dalvikvm(211): Class init failed in newInstance call (L...;)
为什么Android 2.x会像预期的那样运行,但Android 1.6不会?
为什么不使用警报对话框?与控制API版本 if(android.os.Build.VERSION.RELEASE.startsWith(“1。”)) 。 。 。 (“2.0”)|| android.os.Build.VERSION.RELEASE.startsWith(“2.1”)) 。 。 – 2013-05-11 11:24:13
1.6不支持弹出菜单..bcoz它被添加到Api级别11 .. – Sam 2013-05-11 11:28:27
@Sam这就是为什么我显示AlertDialog,如果API级别低于11 ... – floppes 2013-05-11 13:12:30