我正在为平板电脑做一个Android应用程序
我在视图寻呼机中有一个gridView 我想做的是, 我想在gridView中添加菜单到imageview,如google books
请参阅此图片以供参考
http://i.stack.imgur.com/cf4Or.jpg
我试过把它放在gridView imageadaptor中,没有运气
public boolean onOptionsItemSelected(MenuItem item) {
// my code
}
感谢您的时间
答案 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();
您可能需要查看是否需要相同的自定义设计。 谷歌是你的朋友。