2011-10-10 136 views
2

我正在使用ExpandableListView。它工作正常,但我想添加一個OnGroupExpandListener; 問題是如果我重寫它,那麼'基本'的默認行爲也會被覆蓋。我基本上想是這樣的:Android - 擴展setOnGroupExpandListener方法

 mTeamListAdapter = new TeamListAdapter(getLayoutInflater()); 
     mTeamList = (ExpandableListView) findViewById(R.id.screen_team_teamslist); 
     mTeamList.setAdapter(mTeamListAdapter); 
     mTeamList.setGroupIndicator(null); 
     mTeamList.setOnGroupExpandListener(new OnGroupExpandListener() { 

      @Override 
      public void onGroupExpand(int groupPosition) { 
       // do my stuff.. 
       // something like "super();" to enable the other default behaviour 
      } 

     }); 

具體來說,我想打一個按鈕可見 - 在各組中的ExpandableListView(且可點擊它"android:visibility="gone"之前)。我仍然希望每個團體及其子女都可點擊! 我該怎麼做?

編輯:「基本默認行爲」,我的意思是,如果我重寫該方法(OnGroupExpand),似乎我無法展開/摺疊組了!

+0

設置「OnGroupExpandListener」不會影響任何內容!奇怪的。 無論如何,嘗試使用非空值'setGroupIndicator'? –

回答

0

當設置了OnGroupExpandListener時,「基本'默認行爲被覆蓋」的斷言不正確。

您可以通過查看ExpandableListView源代碼驗證(見handleItemClick法):

http://codesearch.google.com/codesearch#uX1GffpyOZk/core/java/android/widget/ExpandableListView.java&q=package:android.git.kernel.org%20file:android/widget/ExpandableListView.java&l=1

你確定你沒有設置​​?如果它的OnGroupClick實現返回true(即點擊被視爲處理),這將覆蓋組擴展。

要麼是這樣,要麼是您的特定OnGroupExpand實施中的某些內容影響ExpandableListAdapter用於顯示組的子行的數據。