0

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]); 
       } 
      } 
     } 
    } 
+0

Comment une vue recycleur peut-elle étendre une classe de fragment? – Ezio

Répondre

0

Hope this peut aider u.

onCreate() 

registerForContextMenu (textView1); Comment une vue recycleur peut-elle étendre une classe de fragment?

@Override 
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
    { 
      super.onCreateContextMenu(menu, v, menuInfo); 
      menu.setHeaderTitle("Select The Action");  
      menu.add(0, v.getId(), 0, "Call");//groupId, itemId, order, title 
      menu.add(0, v.getId(), 0, "SMS"); 
    } 
    @Override  
    public boolean onContextItemSelected(MenuItem item){  
      if(item.getTitle()=="Call"){ 
       Toast.makeText(getApplicationContext(),"calling code",Toast.LENGTH_LONG).show(); 
      }  
      else if(item.getTitle()=="SMS"){ 
       Toast.makeText(getApplicationContext(),"sending sms code",Toast.LENGTH_LONG).show(); 
      }else{ 
       return false; 
      }  
      return true;  
     }