Java RecyclerView中的菜单图标
我试图在每个RecyclerView项目中实现选项菜单Java RecyclerView中的菜单图标,java,android,android-recyclerview,android-menu,Java,Android,Android Recyclerview,Android Menu,我试图在每个RecyclerView项目中实现选项菜单 我的主要活动布局中有这个RecyclerView。用于填充RecyclerView的单个CardView项目。要序列化和保存的utils类。addtracking activity可向RecyclerView和my RecyclerView适配器添加新内容。现在的问题是,每当我在addtracking活动中添加新项时。已填充RecyclerView,但没有选项菜单图标 itemadapter类: public class Itemadapt
我的主要活动布局中有这个RecyclerView。用于填充RecyclerView的单个CardView项目。要序列化和保存的utils类。addtracking activity可向RecyclerView和my RecyclerView适配器添加新内容。现在的问题是,每当我在addtracking活动中添加新项时。已填充RecyclerView,但没有选项菜单图标 itemadapter类:
public class Itemadapter extends
RecyclerView.Adapter<Itemadapter.itemviewholder> {
ArrayList<Item> items = new ArrayList<Item>();
Context mcontext;
public Itemadapter(MainActivity mainActivity, int item, ArrayList<Item>
items)
{
this.items = items;
}
@Override
public itemviewholder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false);
itemviewholder itemviewholder = new itemviewholder(view);
return itemviewholder;
}
@Override
public void onBindViewHolder(final itemviewholder holder, final int position) {
Item item = items.get(position);
holder.postnumber.setText(item.getPost_number());
holder.itemname.setText(item.getItem_name());
holder.txtoptiondigit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//display menu
final PopupMenu pop = new PopupMenu(mcontext,holder.txtoptiondigit);
pop.inflate(R.menu.recycler_item_menu);
pop.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()){
case R.id.item_delete:
//delete file
items.remove(position);
notifyDataSetChanged();
Toast.makeText(mcontext,"item deleted",Toast.LENGTH_SHORT).show();
break;
case R.id.item_share:
//share info
break;
}
return false;
}
});pop.show();
}
});
}
@Override
public int getItemCount() {
return items.size();
}
public static class itemviewholder extends RecyclerView.ViewHolder
{
TextView itemname,postnumber,txtoptiondigit;
public itemviewholder(View view)
{
super(view);
itemname = view.findViewById(R.id.itemdetailsdisplay);
postnumber = view.findViewById(R.id.itemnuberdisplay);
txtoptiondigit = view.findViewById(R.id.optiondigit);
}
}
公共类Itemadapter扩展
RecyclerView.适配器{
ArrayList items=新建ArrayList();
语境;
公共项适配器(MainActivity、MainActivity、int项、ArrayList
(项目)
{
这个项目=项目;
}
@凌驾
public itemviewholder onCreateViewHolder(视图组父级,int-viewType){
View=LayoutFlater.from(parent.getContext()).flate(R.layout.item,parent,false);
itemviewholder itemviewholder=新的itemviewholder(视图);
返回项目视图持有者;
}
@凌驾
公共无效onBindViewHolder(最终itemviewholder,最终int位置){
Item=items.get(位置);
holder.postnumber.setText(item.getPost_number());
holder.itemname.setText(item.getItem_name());
holder.txtoptiondigit.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//显示菜单
最终弹出菜单弹出=新弹出菜单(mcontext,holder.txtoptiondigit);
弹出式充气(右菜单、回收器菜单);
setOnMenuItemClickListener(新建PopupMenu.OnMenuItemClickListener(){
@凌驾
公共布尔onMenuItemClick(菜单项){
开关(item.getItemId()){
案例R.id.项目\删除:
//删除文件
项目。移除(位置);
notifyDataSetChanged();
Toast.makeText(mcontext,“项目已删除”,Toast.LENGTH_SHORT.show();
打破
案例R.id.item\U共享:
//共享信息
打破
}
返回false;
}
});pop.show();
}
});
}
@凌驾
public int getItemCount(){
返回items.size();
}
公共静态类itemviewholder扩展了RecyclerView.ViewHolder
{
TextView项目名称、postnumber、txtoptiondigit;
公共项目视图持有者(视图)
{
超级(视图);
itemname=view.findViewById(R.id.itemdetailsdisplay);
postnumber=view.findviewbyd(R.id.itemnuberdisplay);
txtoptiondigit=view.findviewbyd(R.id.optiondigit);
}
}
item.xml
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="70dp"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
card_view:cardCornerRadius = "4dp"
android:id="@+id/singleitemlayout"
android:layout_margin="5dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding= "@dimen/cardview_default_elevation">
<TextView
android:id="@+id/itemdetailsdisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:text="example_name"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/optiondigit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="⋮"
android:textAppearance="?android:textAppearanceLarge"
android:layout_above="@+id/itemnuberdisplay"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
>
<TextView
android:id="@+id/itemnuberdisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="example_number"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
不了解您的问题。您的问题是什么?已填充RecyclerView,但没有图标,即optiondigit,只有两个文本视图可见