2016-03-30 20 views
1

ListView üzerinde bir butonum var ve bu butona tıklamak suretiyle mizanpajımda tanımlanmış bir contextmenu göstermek istiyorum.Bağlam menüsünü görüntülemek için butona tıklayınız.

Sorun, registerForContextMenu yönteminin customerlistadapter tarafından tanınmamasıdır. , onContextItemSelected bağlam menüsü yöntemleri, ListView'u gösteren etkinlikte geçersiz kılınmıştır.

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ... 
    holder.menubutton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //context menu to be called here 
      parent.showContextMenuForChild(v); 
     } 
    ... 
}); 

Eğer aktivitesinde çağrıldığı elemanları için erişmek istediğiniz gibi onCreateContextMenu ekleseydik: Eğer Aktivite hatasız bir şekilde contextMenu kaydolmuşlarsa

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 
    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.customforumview, null); 
     holder = new ViewHolder(); 
     holder.txtTitle = (TextView) 
     convertView.findViewById(R.id.forumtitle); 
     holder.txtCategory = (TextView) 
     convertView.findViewById(R.id.forumcategory); 
     holder.menubutton = (ImageButton) 
     convertView.findViewById(R.id.menuselect); 

     holder.menubutton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //context menu to be called here 
      } 
     }); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    holder.txtTitle.setText(searchArrayList.get(position).getTitle()); 
    holder.txtCategory.setText(searchArrayList.get(position).getCategory()); 

    return convertView; 
} 

cevap

2

, sen ile contextMenu diyebiliriz @Lior Iluz answer

için daha fazla bilgi için bu

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.context_menu, menu); 

    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; 
    long itemID = info.position; 
    menu.setHeaderTitle("lior" + itemID); 
} 

bakın 10

Umut bu yardımcı olur!

+0

Mükemmel bir çekicilik gibi çalıştım :) Teşekkürler – aasawa

+0

Lütfen sorunu çözülmüş olarak işaretleyin;) –

İlgili konular