Problem: Kann nicht ein Kontextmenü angezeigt werden eine „Löschen“ Option“zeigt, wenn auf ein Element innerhalb eines recyclerviewAndroid - Lange Klicken Sie auf RecyclerView Artikel und ContextMenu
Ergebnis erwartet longclicking: siehe Bild unten
ich bin fast da, aber ich bin etwas fehlt die contextMenu auf einem longClick angezeigt zu machen.
Hier ist, was ich in der viewHolder setzen. ich weiß nicht, was ich möchte hinzufügen, und wo die angezeigt werden Kontextmenü im onLongClick-Ereignis
Ich übersprang einige Zeilen Code und behielt die für meine Frage relevant.
Vielen Dank für Ihre Unterstützung,
Meine Schnittstelle beide Arten von Klicks
public interface OnItemClickListener{
void onItemClick(int position);
}
public interface OnItemLongClickListener{
void onItemLongClick(int position);
}
Viewholder Code
public void bindLongClick(final int position, final OnItemLongClickListener onItemLongClickListener) {
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
onItemLongClickListener.onItemLongClick(position);
return true;
}
});
}
@Override
public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo){
//menuInfo is null
Log.v(LOG_TAG, "grrr");
contextMenu.setHeaderTitle("Select The Action");
contextMenu.add(0, view.getId(), 0, "Supprimer");//groupId, itemId, order, title
}
Adapter Code
zu handhaben@Override
public void onBindViewHolder(CityListViewholder holder, int position) {
holder.cityName.setText(cityArrayList.get(position).getCityName());
holder.bindClick(position, onItemClickListener);
holder.bindLongClick(position, onItemLongClickListener);
}
Dann in der Tätigkeit - übersprungen ich was für meine Frage nicht relevant ist
mCityListAdapter = new CityListAdapter(mContext, cityArrayList, new CityListAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
mPager.setCurrentItem(position);
mDrawerLayout.closeDrawers();
}
}, new CityListAdapter.OnItemLongClickListener() {
@Override
public void onItemLongClick(int position) {
Log.v(LOG_TAG, "Position "+position);
}
});
registerForContextMenu(mRecyclerView);
Sorry, scheint, ich habe es nicht ganz verstanden? Möchten Sie ein Popup anzeigen, wenn Sie auf ein Element klicken? –
Danke Michael, ich habe meine Frage aktualisiert, indem ich eine Illustration von dem, was ich erwarte, sowie eine bessere Beschreibung meines Problems zu der Frage hinzugefügt habe. – Isabelle
@millinet Kontextmenü in Long Click anzeigen. Wenn Sie Ihren Code sehen, haben Sie in LongClick nichts implementiert –