2011-05-18 68 views
0

我無法關閉以前擴展的組,以擴展新組。我已閱讀過類似的問題,但我無法從中提取概念。我嘗試使用collapseGroup(groupPosition)方法,但它不起作用。ExpandabeListView自動摺疊

回答

3

嗨請嘗試下面的代碼。


int lastExpandedGroupPosition = 0; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final ExpandableListView listView = (ExpandableListView) findViewById(R.id.listView); 

    listView.setOnGroupExpandListener(new OnGroupExpandListener() { 

     @Override 
     public void onGroupExpand(int groupPosition) { 

      // TODO Auto-generated method stub 
      if (groupPosition != lastExpandedGroupPosition) { 
       listView.collapseGroup(lastExpandedGroupPosition); 

      } 
      lastExpandedGroupPosition = groupPosition; 

     } 
    }); 

    adapter = new ExpandableListAdapter(this, new ArrayList<String>(), 
      new ArrayList<ArrayList<Vehicle>>()); 

    // Set this blank adapter to the list view 
    listView.setAdapter(adapter); 


} 

進口低於線。


import android.widget.ExpandableListView.OnGroupExpandListener; 

+0

我試過,但沒能實現它在我的代碼...我能得到這個代碼的點點更爲寬廣的畫面.. – gaurav 2011-05-18 10:49:27

+0

請回答我有編輯它。 – Nikhil 2011-05-18 11:41:51

+0

一個信息:如果你嘗試使用上面的代碼,並且得到一個「不能引用一個在不同方法中定義的內部類中的非最終變量」錯誤,只需在onGroupExpand()方法內創建一個對listView的引用。 – Bappy004 2012-06-29 05:50:40