0

Fragment 클래스를 확장하여 Recyclerview를 사용했습니다. 나는 오랫동안 textView를 누르면 팝업 메뉴가 필요합니다. 아래 코드를 표시했습니다. 오류가 없으므로 더 이상 보지 않아도됩니다.Android : 텍스트 뷰를 길게 누르면 팝업 메뉴가 나타납니다.

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;  
     }  
관련 문제