溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ExpandableListView長按GroupItem時,如何處理

發(fā)布時間:2020-07-30 08:55:45 來源:網(wǎng)絡(luò) 閱讀:580 作者:Spi08Breaker 欄目:開發(fā)技術(shù)

    onItemLongClick方法第二個參數(shù):view,這里的view是你按中的位置對應(yīng)的view。view有個方法getTag(int key)。如果在創(chuàng)建此view的時候就把groupPos,childPos通過setTag(int key, Object value)設(shè)置進去。

     要把groupPos,childPos通過setTag的方式綁定到view中,就必須操作該view的創(chuàng)建過程。要控制這個過程就必須要在自定義BaseExpandableListAdapter中重寫getGroupView及getChildView方法進行操作。

 

@Override
 public View getChildView(int groupPosition, int childPosition,
   boolean isLastChild, View convertView, ViewGroup parent) {
  //我這里僅通過自己寫的mkChildView()方法創(chuàng)建TextView來顯示文字,更復(fù)雜的可以通過 LayoutInflater來填充一個view
  TextView childTv = mkChildView();
  // 標記位置
  // 必須使用資源Id當key(不是資源id會出現(xiàn)運行時異常),android本意應(yīng)該是想用tag來保存資源id對應(yīng)組件。
  // 將groupPosition,childPosition通過setTag保存,在onItemLongClick方法中就可以通過view參數(shù)直接拿到了!
      childTv.setTag(R.id.xxx01, groupPosition);
      childTv.setTag(R.id.xxx02, childPosition);
      return childTv;
 }
 @Override
 public View getGroupView(int groupPosition, boolean isExpanded,
   View convertView, ViewGroup parent) {
    TextView groupTv = mkGroupView();
     // 設(shè)置同getChildView一樣
     groupTv.setTag(R.id.xxx01, groupPosition);
     groupTv.setTag(R.id.xxx02, -1); //設(shè)置-1表示長按時點擊的是父項,到時好判斷。
     groupTv.setText(groups[groupPosition]);
     return groupTv;
 }

詳細出處參考:http://www.jb51.net/article/38521.htm

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI