1

私はExpandablelistviewを使っていくつかのデータを表示しているアンドロイドアプリケーションを開発しています。現在、リストビューは、グループをクリックすると、長くクリックした後にリリースするときに展開されます。しかし、私は長いクリックでExpandablelistviewを広げないようにする必要があります。長いクリックで拡大リストビューをブロックする

私のコードセグメントは、次のようになります。

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

いずれかが私を助けることができますか?

答えて

1

ExpandableListView.PACKED_POSITION_TYPE_GROUPはグループのIDです。これを ExpandableListView.PACKED_POSITION_TYPE_CHILDに変更すると、グループチャイルドのlongclicksで操作できます。そのような

何か:

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

あなたも私のQUEをupvoteすることはできますか? – 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

これはあなたにとってうまくいくと思います。 :) –