1

Bazı verileri göstermek için Expandablelistview kullanıyorum bir android uygulaması geliştiriyorum. Şu anda liste görünümü hem grup üzerine tıklayıp hem de uzun tıkladıktan sonra serbest bırakılacak. Ancak, uzun tıklamayla Expandablelistview genişlemesini engellemeye ihtiyacım var.Genişletilebilir Liste Görünümü'nün blok genişletmesi uzun tıklandığında

elvItemList = (ExpandableListView) root.findViewById(R.id.elv_item_list); 
elvItemList.setOnGroupClickListener(this); 
elvItemList.setAdapter(smListAdapter); 
elvItemList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
    @Override 
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
     if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { 
      Utils.logit("SMLOG", "Long button pressed"); 
      // 
     } 
     return false; 
    } 
}); 

herhangi biri bana yardımcı olabilir:

Benim kod segmenti şöyle?

cevap

1

ExpandableListView.PACKED_POSITION_TYPE_GROUP bir grubun adıdır, ExpandableListView.PACKED_POSITION_TYPE_CHILD olarak değiştirebilir ve grup childs üzerinde longclicks ile işlem yapabilirsiniz. Böyle

şey:

elvItemList.setOnItemLongClickListener(new OnItemLongClickListener() { 
@Override 
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { 
// Your code with group long click 
return true; 
} 
return false; 
} 
}); 
+0

sen benim que de upvote miyim? – shafeeq

0
public void stopExpandOnLongClick() 
{ 
    expListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
      boolean checkClick=false; 
      long packedPosition = expListView.getExpandableListPosition(position); 

      int itemType = ExpandableListView.getPackedPositionType(packedPosition); 
      int groupPosition = ExpandableListView.getPackedPositionGroup(packedPosition); 

      /* if group item clicked */ 
      if (itemType == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { 
       // ... 
       if(expListView.isGroupExpanded(groupPosition)) 
       { 
        Toast.makeText(MainActivity.this, "It's normal group collaspe", Toast.LENGTH_LONG).show(); 
       } 
       else 
       { 
        Toast.makeText(MainActivity.this, "This Grouo is not going to expand on long click", Toast.LENGTH_LONG).show(); 
        //you can put your logic when you long press on Group header 
        checkClick=true; 
       } 
      } 
      return checkClick; 
     } 
    }); 

} 
+0

Bunun sizin için iyi olacağını düşünüyorum. :) –