android - 如果 showPopup 仅适用于 API 11,我如何将菜单链接到具有 ABS 的 View ?

标签 android actionbarsherlock

Note: PopupMenu is available with API level 11 and higher.

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

考虑到这一点,我如何将菜单链接到具有 ABS 和兼容性库的屏幕 View ?我的其中一个布局上有一个菜单 ImageView ,我想提供一个通用菜单选项。基本上通过弹出菜单的 imageview,无论设备或 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;
     }
}

关于android - 如果 showPopup 仅适用于 API 11,我如何将菜单链接到具有 ABS 的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10491495/

相关文章:

android - 无法读取特性。安卓蓝牙

android - 使用 ActionBarSherlock 时如何应用 HoloEverywhere android 主题?

android - 如何以编程方式设置操作栏上的文本

android - Android如何在android本地通知中添加视频和GIF?

android - Android Action bar顶部加一条细线

android - 从 ActionBarSherlock 更新到 AppCompatActivity 时出现 NoSuchFieldError

android - 将 actionbarsherlock 与 android-support-v4(版本 23)一起使用

java - 带有来自特殊 HashMap 的图像的 Android ListView

java - 如何从另一个应用程序为我的启动器应用程序获取高 dpi Activity 图标?

Android:Spinner 没有正确获得焦点