5

Android uygulamasında bir ExpandableListView kullanıyorum ve kullanıcı grup elemanında uzun tıklarsa bir eylemi perfüze etmek istiyorum, böylece BaseExpandableListAdapter uzantımda OnLongClickListener tanımladım. Dinleyici aspire edilmiş gibi çalışır ancak çocuk elemanları artık genişlemez. Herhangi bir fikir? Eğer karşılığında bir 'gerçek' geçiyoruz çünküAndroid ExpandableListView uzun grup tıklama dinleyicisi genişlemeyi engelle

public class ConnectionAdapter extends BaseExpandableListAdapter { 
    ... 
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, 
          ViewGroup parent) { 
     // convertView is a LinearLayout 
     convertView.setOnLongClickListener(new OnLongClickListener() { 
      public boolean onLongClick(View v) { 
       // my action here 
       return true; 
      } 
     }); 
    } 
    ... 
} 

cevap

1

kodunuzu ayrıca başka 'onClick' olaylarını işleme değil nedenidir. Bir olayın ele alındığını belirtirseniz, işletim sistemi daha fazla olayı daha fazla işlemeye çalışmayı durdurur. Bu olayı işlemek ve ayrıca genişletmek için , daha sonra true

+3

ben yanlış dönen çalıştılar. Ama aynı konu benim için de geçerli. Grup, –

+0

convertview için onLongClicklistener'ı uyguladıktan sonra genişlemeyecek. Aynı soruna sahip olduğumda, grup öğemde uzun bir tıklama dinleyicisini uyguladığım anda, kısa tıklatma (grubu genişletmek için) çalışmayı durdurur ... takdir edilen herhangi bir yardım. –

4

döndürme dönüşünü değiştirmeniz gerekir. SetOnItemLongClickListener'ı genişletilebilir görünümünüzün üzerine getirebilirsiniz. GenişletilebilirListView.PACKED_POSITION_TYPE_GROUP bir grubun kimliğidir, ExpandableListView.PACKED_POSITION_TYPE_CHILD olarak değiştirin ve grup childs üzerinde longclicks ile işlem yapabilirsiniz. Böyle

şey:

pager_income = (ExpandableListView) findViewById(R.id.income_scroll); 

    pager_income.setOnItemLongClickListener(new OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
      if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { 
       // Your code with group long click 

       return true; 
      } 

      return false; 
     } 
    }); 
İlgili konular