2013-02-07 5 views
6

私はExpandableListViewを持っています。グループを設定する必要があります(groupPositionは既知で、常に同じです)が非展開で、クリックすると新しいActivityを開始します。それを行う方法はありますか?android ExpandableListView - 特定のグループを非拡張可能に設定する

getExpandableListView().setOnGroupClickListener(
      new OnGroupClickListener() { 
       @Override 
       public boolean onGroupClick(ExpandableListView parent, 
         View v, int groupPosition, long id) { 
        if (groupPosition == 1) { 
         Toast.makeText(getApplicationContext(), "TEST", 
           Toast.LENGTH_SHORT).show(); 
        } else if (groupPosition != lastExpandedGroupPosition) { 
         getExpandableListView().collapseGroup(
           lastExpandedGroupPosition); 
        } else 
         getExpandableListView().expandGroup(groupPosition); 
        lastExpandedGroupPosition = groupPosition; 

        return true; 
       } 
      }); 

答えて

17

これは、トリックを行います - のためにtrueを返し、あなたは特別扱いしたいグループのためにonGroupClickでチェックデフォルトのアクション(展開/折りたたみ)で処理したいものについてはfalseを返します。

+0

本当に簡単な方法で問題を解決してください。ありがとう – Droidman

+0

これは働いた。ありがとう:) – Bhupinder

+0

ありがとう、幸せコーディング:) –

2

あなたはExpandableListViewためOnGroupClickListener使用することができます。私も一度に展開するだけで一つのグループを必要とし、以下を試してみました(これは正常に動作していない)

UPDATE

グループのクリックを制限します。

は、上記のコードを試してみてください

private int previousGroupPosition = -1; 
private boolean isDoubleTap = false;  

expLv.setOnGroupClickListener(new OnGroupClickListener() 
{ 
    @Override 
    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) 
    { 
     if(previousGroupPosition != -1) 
      expLvTodoCategories.collapseGroup(previousGroupPosition); 

     if(previousGroupPosition != groupPosition || isDoubleTap) 
     { 
      isDoubleTap = false; 
      previousGroupPosition = groupPosition; 
      if(groupPosition == 1) 
      { 
       //Start Activity 
      } 
      else 
      { 
       expLv.expandGroup(groupPosition); 
      } 
     } 
     else 
      isDoubleTap = true; 

     return true; 
    } 
}); 

を更新し、それは便利です。..

+0

一度に1つのグループだけを展開する必要があります。私はonGroupExpand()メソッドでこれを行い、コードが正しく動作しないようにします。私の質問を更新しました – Droidman

+0

コードを更新しました。 – Santhosh

+0

upvote、ご協力ありがとうございます – Droidman

関連する問題