2016-05-09 27 views
0

我刚刚实现了可扩展列表视图。我从[Expandablelistview] [1] 得到了参考所以我从上面的链接实现了Expandable Listview。 但问题是,我能够在儿童组中实现一个textview。我想要在儿童组中添加三个textviewandroid可扩展列表视图与四个textview在子组

所以我想在儿童组中添加四个textview请帮助我。其对我来说很重要veryn

+0

我认为你需要更新您已扩展的自定义可扩展列表视图。 仍然分享您的展开式列表视图的代码 –

+0

请看看这个解决方案: http://stackoverflow.com/questions/32768040/multiple-textviews-in-expandablelistview-andoid –

+0

只需给我半小时 –

回答

0

更新两个文件在演示 github.com/idunnololz/AnimatedExpandableListView

MainActivity:

package com.example.animatedexpandablelistview; 

import java.util.ArrayList; 
import java.util.List; 

import com.idunnololz.widgets.AnimatedExpandableListView; 
import com.idunnololz.widgets.AnimatedExpandableListView.AnimatedExpandableListAdapter; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ExpandableListView; 
import android.widget.ExpandableListView.OnGroupClickListener; 
import android.widget.TextView; 

/** 
* This is an example usage of the AnimatedExpandableListView class. 
* 
* It is an activity that holds a listview which is populated with 100 groups 
* where each group has from 1 to 100 children (so the first group will have one 
* child, the second will have two children and so on...). 
*/ 
public class MainActivity extends Activity { 
    private AnimatedExpandableListView listView; 
    private ExampleAdapter adapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     List<GroupItem> items = new ArrayList<GroupItem>(); 

     // Populate our list with groups and it's children 
     for(int i = 1; i < 10; i++) { 
      GroupItem item = new GroupItem(); 

      item.title = "Group " + i; 

       ChildItem child = new ChildItem(); 
       child.title = "Title " + i; 
       child.hint = "Hint"+ i; 
       child.subTitle="subtitle"+ i; 
       child.desc="Descrition"+ i; 
       item.items.add(child); 

      items.add(item); 
     } 

     adapter = new ExampleAdapter(this); 
     adapter.setData(items); 

     listView = (AnimatedExpandableListView) findViewById(R.id.listView); 
     listView.setAdapter(adapter); 

     // In order to show animations, we need to use a custom click handler 
     // for our ExpandableListView. 
     listView.setOnGroupClickListener(new OnGroupClickListener() { 

      @Override 
      public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { 
       // We call collapseGroupWithAnimation(int) and 
       // expandGroupWithAnimation(int) to animate group 
       // expansion/collapse. 
       if (listView.isGroupExpanded(groupPosition)) { 
        listView.collapseGroupWithAnimation(groupPosition); 
       } else { 
        listView.expandGroupWithAnimation(groupPosition); 
       } 
       return true; 
      } 

     }); 
    } 

    private static class GroupItem { 
     String title; 
     List<ChildItem> items = new ArrayList<ChildItem>(); 
    } 

    private static class ChildItem { 
     String title; 
     String hint; 
     String subTitle; 
     String desc; 
    } 

    private static class ChildHolder { 
     TextView title; 
     TextView hint; 
     TextView subTitle; 
     TextView desc; 
    } 

    private static class GroupHolder { 
     TextView title; 
    } 

    /** 
    * Adapter for our list of {@link GroupItem}s. 
    */ 
    private class ExampleAdapter extends AnimatedExpandableListAdapter { 
     private LayoutInflater inflater; 

     private List<GroupItem> items; 

     public ExampleAdapter(Context context) { 
      inflater = LayoutInflater.from(context); 
     } 

     public void setData(List<GroupItem> items) { 
      this.items = items; 
     } 

     @Override 
     public ChildItem getChild(int groupPosition, int childPosition) { 
      return items.get(groupPosition).items.get(childPosition); 
     } 

     @Override 
     public long getChildId(int groupPosition, int childPosition) { 
      return childPosition; 
     } 

     @Override 
     public View getRealChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 
      ChildHolder holder; 
      ChildItem item = getChild(groupPosition, childPosition); 
      if (convertView == null) { 
       holder = new ChildHolder(); 
       convertView = inflater.inflate(R.layout.list_item, parent, false); 
       holder.title = (TextView) convertView.findViewById(R.id.textTitle); 
       holder.hint = (TextView) convertView.findViewById(R.id.textHint); 
       holder.subTitle = (TextView) convertView.findViewById(R.id.textsubTitle); 
       holder.desc = (TextView) convertView.findViewById(R.id.textDesc); 
       convertView.setTag(holder); 
      } else { 
       holder = (ChildHolder) convertView.getTag(); 
      } 

      holder.title.setText(item.title); 
      holder.hint.setText(item.hint); 
      holder.subTitle.setText(item.subTitle); 
      holder.desc.setText(item.desc); 

      return convertView; 
     } 

     @Override 
     public int getRealChildrenCount(int groupPosition) { 
      return items.get(groupPosition).items.size(); 
     } 

     @Override 
     public GroupItem getGroup(int groupPosition) { 
      return items.get(groupPosition); 
     } 

     @Override 
     public int getGroupCount() { 
      return items.size(); 
     } 

     @Override 
     public long getGroupId(int groupPosition) { 
      return groupPosition; 
     } 

     @Override 
     public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 
      GroupHolder holder; 
      GroupItem item = getGroup(groupPosition); 
      if (convertView == null) { 
       holder = new GroupHolder(); 
       convertView = inflater.inflate(R.layout.group_item, parent, false); 
       holder.title = (TextView) convertView.findViewById(R.id.textTitle); 
       convertView.setTag(holder); 
      } else { 
       holder = (GroupHolder) convertView.getTag(); 
      } 

      holder.title.setText(item.title); 

      return convertView; 
     } 

     @Override 
     public boolean hasStableIds() { 
      return true; 
     } 

     @Override 
     public boolean isChildSelectable(int arg0, int arg1) { 
      return true; 
     } 

    } 

} 

list_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:paddingRight="10dp" 
    android:paddingLeft="50dp"> 

    <TextView 
     android:id="@+id/textTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/textHint" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

    <TextView 
     android:id="@+id/textsubTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/textDesc" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

</LinearLayout> 
+0

wc! 当您的问题得到解决时,请不要忘记Upvote并接受答案:-) –

+0

您是否创建了新项目或使用相同的演示? –