onCreateOptionsMenu for imageview

时间:2014-07-25 10:01:50

标签: android gridview

我正在为平板电脑做一个Android应用程序

我在视图寻呼机中有一个gridView 我想做的是,  我想在gridView中添加菜单到imageview,如google books

请参阅此图片以供参考

http://i.stack.imgur.com/cf4Or.jpg

我试过把它放在gridView imageadaptor中,没有运气

    public boolean onOptionsItemSelected(MenuItem item) {
     // my code
     }

感谢您的时间

4 个答案:

答案 0 :(得分:2)

您需要使用PopupMenu
http://developer.android.com/reference/android/widget/PopupMenu.html

您需要设置一个PopupMenu,将视图作为锚点+指定将在此处使用的菜单资源。当然,这应该在OnClickListener内为您的观点完成。

anchorView.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View view) {
        PopupMenu popupMenu = new PopupMenu(context, anchorView);
        popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
            public boolean onMenuItemClick(MenuItem item) {

                switch (item.getItemId()) {
                case R.id.item_one:
                    // item one clicked
                    return true;
                case R.id.item_two:
                    // item two clicked
                    return true;
                }

                return false;
            }
        );
        popupMenu.inflate(R.menu.popup_menu);
        popupMenu.show();
    }
});

定义标准menu资源 - 这是您的popup_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/item_one"
        android:title="Item one"/>
    <item
        android:id="@+id/item_two"
        android:title="Item two"/>

</menu>


这是一个很好的教程,你可以看一下:
http://javatechig.com/android/popup-menu-in-android-example

答案 1 :(得分:1)

yourImageViewObject.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                PopupMenu popup = new PopupMenu(activity, v);

                /** Adding menu items to the popumenu */
                popup.getMenuInflater().inflate(R.menu.main, popup.getMenu());
                popup.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        // TODO Auto-generated method stub
                        switch (item.getItemId()) {
                        case R.id.spam:

                            Toast.makeText(activity, "Spam clicked",
                                    Toast.LENGTH_SHORT).show();
                            break;

                        case R.id.blockuser:
                            Toast.makeText(activity, " Block user clicked",
                                    Toast.LENGTH_SHORT).show();
                            break;

                        case R.id.remove:
                            Toast.makeText(activity, "Remove clicked",
                                    Toast.LENGTH_SHORT).show();

                            break;

                        default:
                            break;
                        }

                        return false;
                    }
                });
                popup.show();
            }
        });

菜单文件main.xml

   <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/spam"
        android:title="Spam"/>
    <item
        android:id="@+id/blockuser"
        android:title="Block User"/>
    <item
        android:id="@+id/remove"
        android:title="Remove"/>

</menu>

将main.xml放在res文件夹

里面的菜单文件夹中

答案 2 :(得分:0)

您需要的是PopupMenu。创建一个可以作为菜单锚点的视图,并按如下方式添加PopupMenu:

PopupMenu myPopup = new PopupMenu(context, myAnchor);
myAnchor.setOnTouchListener(myPopup.getDragToOpenListener());

答案 3 :(得分:0)

您可以按照以下步骤操作......我希望这可以帮助您

步骤1:在菜单资源文件夹中创建菜单项          有点像这样:

     <?xml version="1.0" encoding="utf-8"?>
     <menu xmlns:android="http://schemas.android.com/apk/res/android" >
     <item android:id="@+id/menuitemone"
           android:title="Cut"/>
     <item android:id="@+id/menuitemtwo"
               android:title="Copy" />
     <item android:id="@+id/menuitemthree"
               android:title="Paste"/>
    </menu>

第2步:为您的各个网格项目布局定义图像视图(根据您选择的位置)

步骤3:在BaseAdaptor类中定义ImageView单击列表器

步骤4:在onclick listner中粘贴此代码以显示下拉菜单

     PopupMenu popup = new PopupMenu(MainActivity.this, arg1);  
     popup.getMenuInflater().inflate(R.menu.menuname, popup.getMenu());  
     popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {  
     public boolean onMenuItemClick(MenuItem item) {  
             Log.i("TEST",item.getTitle());
             return true;  
         }  
       }); 
      popup.show();

您可能需要查看是否需要相同的自定义设计。 谷歌是你的朋友。