0

我已經使用Recyclerview擴展片段類。我需要長按TextView後彈出菜單。我已經顯示了下面的代碼。沒有錯誤,所以我不知道該往哪裏看。Android:經過長時間按下textview,我需要彈出上下文菜單

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

回收站視圖如何擴展片段類? – Ezio

回答

0

希望這可以幫助ü。

onCreate() 

registerForContextMenu(textView1);

@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;  
     }