[英]Refresh ArrayList to show new Data into RecyclerView using Click on Spinner Item
[英]Unable to show popmenu on RecyclerView item click
當用戶單擊該行元素時,我在 Recyclerview 項目行中有菜單選項,然后我想顯示彈出菜單。 我已經實現了這個功能,點擊消息顯示在日志上,但彈出菜單沒有出現。
下面是我的代碼:
public class PdfAdapter extends RecyclerView.Adapter<PdfAdapter.ViewHolder> {
Context context;
List<Pdfs> pdfList;
public PdfAdapter(Context context, List<Pdfs> pdfList) {
this.context = context;
this.pdfList = pdfList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.pdf_item_row,parent,false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Pdfs model = pdfList.get(position);
holder.pdfName.setText(model.getFilenamename());
holder.datTime.setText(model.getDatetime());
holder.menu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("clik","Hello");
PopupMenu popupMenu = new PopupMenu(context,holder.menu);
popupMenu.inflate(R.menu.row_menu);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.itemShare:
break;
case R.id.itemDel:
break;
case R.id.itemDownload:
Toast.makeText(context,model.getFileurl(),Toast.LENGTH_SHORT).show();
break;
}
return false;
}
});
}
});
}
@Override
public int getItemCount() {
return pdfList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView pdfName,menu,datTime;
public ViewHolder(@NonNull View itemView) {
super(itemView);
pdfName = itemView.findViewById(R.id.pdfName);
menu = itemView.findViewById(R.id.menu);
datTime = itemView.findViewById(R.id.datTime);
}
}
}
我究竟做錯了什么?
您忘記在popupMenu
上調用.show()
方法。
最后在點擊偵聽器中添加以下行。
popupMenu.show();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.