可折叠的listview的demo...(listview 嵌套 gridview)ExpandableListView
2017-03-06 18:48
423 查看
ExpandableListView 是安卓自带的也需要适配器
adapter=new MyExpandableListViewAdapter(getActivity(),list); listView.setAdapter(adapter);用法和listview一毛一样
public class MyExpandableListViewAdapter extends BaseExpandableListAdapter { private TextView textView1,textView2;//代码全干上了 我也是小白 在此记录 以备后用 private Context context; private ArrayList<LYMedicalRecord> list; public MyExpandableListViewAdapter(Context context, ArrayList<LYMedicalRecord> list) { this.context = context; this.list = list; } @Override public int getGroupCount() { return list.size(); } @Override public int getChildrenCount(int groupPosition) {//个人展示需求 故没有返回子集合个数
// return list.get(groupPosition).getSubMedicalRecord().size();
return 1; } @Override public Object getGroup(int groupPosition) { return list.get(groupPosition); } @Override public Object getChild(int groupPosition, int childPosition) { return list.get(groupPosition).getSubMedicalRecord().get(childPosition); } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return true; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { GroupHolder groupHolder = null; if (convertView == null) { convertView = View.inflate(context, R.layout.dianzibingli_group, null); groupHolder = new GroupHolder(); groupHolder.txt = (TextView) convertView.findViewById(R.id.dianzibingli_grouptv); convertView.setTag(groupHolder); } else { groupHolder = (GroupHolder) convertView.getTag(); } groupHolder.txt.setText(list.get(groupPosition).getGroupKey()+"("+list.get(groupPosition).getSubMedicalRecord().size()+")"); return convertView; } @Override public View getChildView(final int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { ItemHolder itemHolder = null; if (convertView == null) { convertView = View.inflate(context, R.layout.dianzibingli_child, null); itemHolder = new ItemHolder(); itemHolder.gv = (MyGridView) convertView.findViewById(R.id.dianzibingli_gv); convertView.setTag(itemHolder); } else { itemHolder = (ItemHolder) convertView.getTag(); } MyBaseAdapter<LYMedicalRecord.SubMedicalRecordBean> myBaseAdapter=new MyBaseAdapter<LYMedicalRecord.SubMedicalRecordBean>(context,list.get(groupPosition).getSubMedicalRecord()) { @Override public int getContentView() { return R.layout.dianzibingli_child_item; } @Override public void onInitView(View view, int position) { textView1 = (TextView) view.findViewById(R.id.dianzibingligv_item_tv); textView2=(TextView) view.findViewById(R.id.dianzibingligv_item_tv2); textView1.setText(list.get(groupPosition).getSubMedicalRecord().get(position).getTitle()); textView2.setText(list.get(groupPosition).getSubMedicalRecord().get(position).getCreateDateTime().substring(2,16)); } }; itemHolder.gv.setAdapter(myBaseAdapter); itemHolder.gv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent=new Intent(context, DianzibingliActivity.class); intent.putExtra("groupPosition",groupPosition); intent.putExtra("postion",position); intent.putExtra("dianzibingli",list); context.startActivity(intent); } }); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } class GroupHolder { public TextView txt; } class ItemHolder { public MyGridView gv; } }
最后后附上嵌套可以完全现实的gridview 虽热网上多的事 我也cv
public class MyGridView extends GridView {//重写了宽高 public MyGridView(Context context) { super(context); } public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = M a3e4 easureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
.......................................................................................
最最后ExpandableListView所有项默认展开
就是是循环一下父集合
if (adapter!=null) { if (adapter.getGroupCount()!=0) { for (int i = 0; i < adapter.getGroupCount(); i++) { listView.expandGroup(i); } } } ((HuanZheActivity)getActivity()).changetime(); }
!!!!!!!//todo
相关文章推荐
- 可折叠的listview的demo...(listview 嵌套 gridview)ExpandableListView
- 可折叠的listview的demo...(listview 嵌套 gridview)ExpandableListView
- 可折叠的listview的demo...(listview 嵌套 gridview)ExpandableListView
- expandablelistview学习--在listView里面嵌套GridView
- ExpandableListView 嵌套gridView使用
- 嵌套在ScrollView里的列表控件重写(ListView、GridView、ExpandableListView)
- ExpandableListView嵌套GridView
- android中ExpandableListView嵌套GridView使用
- ExpandableListView嵌套GridView实现购物标签栏
- expandablelistview学习--在listView里面嵌套GridView
- expandablelistview学习--在listView里面嵌套GridView
- ExpandableListView里面嵌套GridView的问题
- ExpandableListView嵌套Gridview显示不全的问题
- ListView嵌套GridView的Demo
- Android ExpandableListView 中完美嵌套 GridView
- ExpandableListView 里面嵌套GridView实现高度自适应
- ExpandableListView嵌套GridView
- Android ExpandableListView 中完美嵌套 GridView
- Android ExpandableListView 中完美嵌套 GridView
- expandablelistview、listView嵌套gridview点击事件冲突解决