如果 showPopup 仅适用于 API 11,如何将菜单链接到带有 ABS 的视图?

2024-05-06

注意:PopupMenu 在 API 级别 11 及更高版本中可用。

http://developer.android.com/guide/topics/ui/menus.html#PopupMenu http://developer.android.com/guide/topics/ui/menus.html#PopupMenu

考虑到这一点,如何使用 ABS 和兼容性库将菜单链接到屏幕上的视图?我的一个布局上有一个菜单图像视图,我想提供一个通用菜单选项。基本上,通过弹出菜单的图像视图,无论设备或 Android 版本如何,都可以使用相同的系统。但是,如果弹出窗口仅存在于 Gingerbread 及更高版本上,是否有另一种方法可以链接 ImageView(+ 单击侦听器)来打开我的菜单?


这是我最终解决这个问题的方法:

    ImageView menuImg = (ImageView) activity.findViewById(R.id.menuImageView);
    menuImg.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            activity.openOptionsMenu(); //This is the key method!
        }
    });

public boolean onCreateOptionsMenu(Menu menu) {
    com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    return true;    
}

public boolean onMenuItemClick(MenuItem item) {
     switch (item.getItemId()) {
        case R.id.demographics:

            return true;
        case R.id.settings:
            Log.v("v", "settings clicked");
            return true;
        default:
            return false;
     }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果 showPopup 仅适用于 API 11,如何将菜单链接到带有 ABS 的视图? 的相关文章

随机推荐