Java 单击时弹出菜单不会弹出
我有一个Java 单击时弹出菜单不会弹出,java,android-studio,onclick,popupmenu,Java,Android Studio,Onclick,Popupmenu,我有一个ImageButton,它位于我的Recyclerview的项中,通常应该调用方法showPopuponclick。 我的计划是,当单击此Imagebutton时,将出现一个PopupMenu,您可以从中选择重命名或删除该项目。 但不幸的是,事情并没有按预期的那样进行。 我感谢你的帮助 <ImageButton android:id="@+id/img_btn_more" android:layout_width="wrap_cont
ImageButton
,它位于我的Recyclerview
的项中,通常应该调用方法showPopup
onclick。
我的计划是,当单击此Imagebutton
时,将出现一个PopupMenu
,您可以从中选择重命名或删除该项目。
但不幸的是,事情并没有按预期的那样进行。
我感谢你的帮助
<ImageButton
android:id="@+id/img_btn_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="8dp"
android:background="@android:color/white"
android:src="@drawable/ic_more"
android:onClick="showPopup"/>
如果您在RecyclerView中,则必须在ViewHolder中执行此操作
并传递构建RecycleServiceAdapter时获得的上下文
holder.*your_image_view*.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopupMenu popup=new PopupMenu(mContext,v);
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()){
case R.id.item1: Toast.makeText(mContext," Random text1",Toast.LENGTH_SHORT).show();
return true;
case R.id.item2: Toast.makeText(mContext," Random text2",Toast.LENGTH_SHORT).show();
return true;
default: return false;
}
}
});
popup.inflate(R.menu.popup_menu);
popup.show();
}
});
嗨,Cliz,如果这个或任何答案解决了你的问题,请考虑通过点击复选标记来接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。
holder.*your_image_view*.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopupMenu popup=new PopupMenu(mContext,v);
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()){
case R.id.item1: Toast.makeText(mContext," Random text1",Toast.LENGTH_SHORT).show();
return true;
case R.id.item2: Toast.makeText(mContext," Random text2",Toast.LENGTH_SHORT).show();
return true;
default: return false;
}
}
});
popup.inflate(R.menu.popup_menu);
popup.show();
}
});