영화 정보가 포함 된 ExpandableListView가 있습니다. 그룹은 영화 제목이고, 하위 항목은이 영화와 관련된 미디어입니다 (모두 Movie 객체에 포함됨). ExpandableListView가 그룹과 함께 표시되지만 그룹을 클릭하면 목록이 확장되지 않습니다. 나는 그것을 디버깅하고 난 getChildView 절대로 실행되지 않는 알아 낸다. 검색하고 있었지만이 방법이 실행되지 않는 이유를 알지 못합니다.ExpandableListView가 하위 항목을 추가하지 않습니다.
그룹 : 여기
ArrayList<MovieMock> movies;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.savedsyncs_content);
ExpandableListView l = (ExpandableListView) findViewById(R.id.ExpandableList_Content);
laodMockedList();
ContentExpandableListAdapter adapter = new ContentExpandableListAdapter(this, movies);
l.setAdapter(adapter);
}
public class ContentExpandableListAdapter extends BaseExpandableListAdapter {
private ArrayList<MovieMock> movies;
private Context context;
/*ExpandableList containing the movies from SavedSyncs. The groups are the movie's titles, the childs are
* the movie media and information.
* */
public ContentExpandableListAdapter(Context context, ArrayList<MovieMock> movies){
this.context = context;
this.movies = movies;
}
@Override
public boolean areAllItemsEnabled()
{
return true;
}
@Override
public MovieMock getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
Log.d("CHILD", "getChild : " + groupPosition);
return movies.get(groupPosition);
}
@Override
public long getChildId(int arg0, int arg1) {
// TODO Auto-generated method stub
//return Long.parseLong(movies.get(arg0).getId());
return arg1;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild,View convertView, ViewGroup parent) {
MovieMock child = (MovieMock)getChild(groupPosition, childPosition);
Log.d("DEBUG", "Entro al hijo") ;
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.expandablelistcontent_child, null);
}
TextView audiotxt = (TextView) convertView.findViewById(R.id.audio_text);
audiotxt.setText(child.getAudio());
/*TextView videotxt = (TextView) convertView.findViewById(R.id.video_text);
videotxt.setText(child.getAudio());*/
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return 3;
}
@Override
public String getGroup(int groupPosition) {
// TODO Auto-generated method stub
return movies.get(groupPosition).getTitle();
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return movies.size();
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
//return Long.parseLong(movies.get(groupPosition).getId());
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
String movieTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.expandablelistcontent_group, null);
}
TextView grouptxt = (TextView) convertView.findViewById(R.id.ContentText);
grouptxt.setText(movieTitle);
return convertView;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
}
그리고
는 XML 코드<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/ContentText"
android:text="Content"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"/>
<ImageButton
android:id="@+id/delete_button"
android:layout_width="20dip"
android:layout_height="20dip"
android:background="@drawable/delete_button"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
>
</ImageButton>
</RelativeLayout>
아이 :
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/layout_audio">
<ImageView
android:background="@drawable/audio_icon"
android:layout_height="20dip"
android:layout_width="20dip"
android:id="@+id/audio_icon"
>
</ImageView>
<TextView
android:id="@+id/audio_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Audio"
android:layout_toRightOf="@id/audio_icon"
>
</TextView>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/layout_video"
android:layout_below="@id/layout_audio">
<ImageView
android:background="@drawable/video_icon"
android:layout_height="20dip"
android:layout_width="20dip"
android:id="@+id/video_icon">
</ImageView>
<TextView
android:id="@+id/video_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Trailer"
android:layout_toRightOf="@id/video_icon"
>
</TextView>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/layout_image"
android:layout_below="@id/layout_video">
<ImageView
android:background="@drawable/image_icon"
android:layout_height="20dip"
android:layout_width="20dip"
android:id="@+id/image_icon">
</ImageView>
<TextView
android:id="@+id/image_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Poster"
android:layout_toRightOf="@id/image_icon"
>
</TextView>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/layout_info"
android:layout_below="@id/layout_image">
<ImageView
android:background="@drawable/info_icon"
android:layout_height="20dip"
android:layout_width="20dip"
android:id="@+id/info_icon">
</ImageView>
<TextView
android:id="@+id/info_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Movie Information"
android:layout_toRightOf="@id/info_icon"
>
</TextView>
</LinearLayout>
</RelativeLayout>
답변을 주셔서 감사합니다. 그러나 뭔가 빠뜨리지 않았다면, 내 코드와의 차이점은 부모와 자식에 대해 하나의 배열 만 사용한다는 것입니다 (2를 사용할 이유가 없기 때문입니다). 그게 문제 야? 나는 그것이 shouldnt하는 것을 이해한다. – DiamondGerace
답변을 주셔서 감사합니다. m은 헤더 뷰를 확장 할 수 없으므로 아이 뷰를 확장 할 수는 없지만 UR 어댑터의 refrence를 사용하면 완료됩니다. –