2010-06-24 5 views

답변

7

나는 이틀 전에 실행됩니다. 여기 내 솔루션입니다 :

먼저 ExpandableListActivity를 확장하고이 같은에서 onCreate() 메소드를 오버라이드 (override) :

public class ExpandableExample extends ExpandableListActivity { 
    @Override 
    public void onCreate() { 
     super.onCreate(savedInstanceState); 
     setListAdapter(new BaseExpandableListAdapterExample()); 
    } 
} 

BaseExpanableListAdapterExample의 정의는 (ExpandableExample의 내부 클래스)입니다 : 다음

protected class BaseExpandableListAdapterExample extends BaseExpandableListAdapter { 
} 

당신이 필요를 getChildViewgetGroupView을 구현합니다. 내가 한 일은이었다

public View getGroupView(int groupPosition, boolean isExpanded, 
         View convertView, ViewGroup parent) { 
    View groupRow = getLayoutInflater().inflate(R.layout.group_row, null); 
    TextView textView = (TextView) groupRow.findViewById(R.id.text_group); 
    textView.setText(getGroup(groupPosition).toString()); 
    return groupRow; 
} 

public View getChildView(int groupPosition, int childPosition, 
         boolean isLastChild, View convertView, ViewGroup parent) { 
    View childRow = getLayoutInflater().inflate(R.layout.child_row, null); 
    TextView textView = (TextView) childRow.findViewById(R.id.text_child); 
    textView.setText(getChild(groupPosition, childPosition).toString()); 
    return childRow; 
} 

는 그런 다음 /res/layout/ 디렉토리 아래에 모두 group_row.xmlchild_row.xml를 정의 할 필요가있다. 예를 들어, 내 group_row.xml은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <TextView 
     android:id="@+id/text_element" 
     android:layout_width="fill_parent" 
     android:layout_height="48dip" 
     android:textSize="20sp" 
     android:textColor="#fff" 
     android:layout_marginLeft="48dip" 
     android:gravity="center_vertical" /> 
</RelativeLayout> 

희망이 있습니다. 질문이 있으면 의견을 말하십시오.

+0

대단히 감사합니다. 멋지지만 XML에서 콘텐츠를 가져와야합니다. 어쩌면 SimpleExpandableListAdapter에서 사용하기에 적합한 데이터 구조에 XML을 수동으로 구문 분석 할 것을 고려해야합니까? –

+0

알렉산더, http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList1.html에서 수동으로 ExpandableListView를 채우는 방법에 대한 예제를 확인하십시오. 어댑터. – licorna

+0

링크가 맞습니까? 이 코드는 공급자를 사용합니다. 단순히 자신의 것으로 정의합니다 :) 하지만 XML 데이터를 구문 분석 할 자체 공급자를 만드는 것은 솔루션처럼 보입니다. –

관련 문제