J'ai utilisé Recyclerview pour étendre une classe de fragments. J'ai besoin d'un menu contextuel après une longue pression sur le texte. J'ai affiché le code ci-dessous. Il n'y a pas d'erreur donc je ne sais plus où chercher.Android: Après avoir appuyé longuement sur un textview, j'ai besoin d'un menu contextuel contextuel
public class RecyclerViewFragment extends Fragment implements View.OnCreateContextMenuListener {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RecyclerView recyclerView = (RecyclerView) inflater.inflate(
R.layout.recycler_view, container, false);
ContentAdapter adapter = new ContentAdapter(recyclerView.getContext());
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return recyclerView;
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnCreateContextMenuListener {
public ImageView avator;
public TextView name;
public TextView description;
public TextView num;
public View divider;
public ViewHolder(LayoutInflater inflater, ViewGroup parent) {
super(inflater.inflate(R.layout.listing_view, parent, false));
avator = (ImageView) itemView.findViewById(R.id.listing_avatar);
name = (TextView) itemView.findViewById(R.id.listing_title);
description = (TextView) itemView.findViewById(R.id.listing_desc);
num = (TextView) itemView.findViewById(R.id.listing_num) ;
divider= itemView.findViewById(R.id.listing_div);
itemView.setOnCreateContextMenuListener(this);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
if (v.getId()==R.id.list) {
//AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
menu.setHeaderTitle("Action");
String[] menuItems = getResources().getStringArray(R.array.arr_menu);
for (int i = 0; i<menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
}
}
}
Comment une vue recycleur peut-elle étendre une classe de fragment? – Ezio