android-基础编程-ExpandableListview
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android-基础编程-ExpandableListview,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6213字,纯文字阅读大概需要9分钟。
内容图文
ExpandableListView继承ListView,具有LIstVIew的基本功能。此外具有group/child,由组与子元素组成。
1.布局主要有是三个。
a.主布局:
< ExpandableListView android:layout_width ="match_parent" android:layout_height ="match_parent" android:id ="@+id/expandlistview" android:dividerHeight ="5dp" android:background ="#ffffff" android:divider ="@drawable/expandchilddivide" android:childDivider ="#000000" />
b.Group布局:
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:layout_width ="match_parent" android:layout_height ="wrap_content" android:gravity ="center" android:orientation ="vertical" > < TextView android:id ="@+id/group_text" android:layout_width ="match_parent" android:layout_height ="wrap_content" android:paddingTop ="10dip" android:paddingBottom ="10dip" android:gravity ="center_horizontal" android:text ="122" /> </ LinearLayout >
c.Child布局:
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:layout_width ="match_parent" android:layout_height ="match_parent" android:orientation ="horizontal" > < LinearLayout android:layout_width ="match_parent" android:layout_height ="wrap_content" android:orientation ="vertical" > < TextView android:id ="@+id/textOne" android:layout_width ="match_parent" android:layout_height ="match_parent" android:text ="1" /> < TextView android:id ="@+id/textTwo" android:layout_width ="match_parent" android:layout_height ="match_parent" android:text ="2" /> < TextView android:id ="@+id/textThree" android:layout_width ="match_parent" android:layout_height ="match_parent" android:text ="3" /> </ LinearLayout > </ LinearLayout >
2.代码生成 类似adapter 创建adapter(ExpandableListAdapter、BaseExpandableListAdapter、SimpleExpandableListAdapter 依次继承关系)
a.创建adapter
// 自定义适配器 class Adapter extends BaseExpandableListAdapter { //获取子元素对象 @Override public Object getChild(int groupPosition, int childPosition) { returnnull; } //获取子元素Id @Override publiclong getChildId(int groupPosition, int childPosition) { return childPosition; } //加载子元素并显示 @Override public View getChildView(finalint groupPosition, finalint childPosition, boolean isLastChild, View convertView, ViewGroup parent) { View view = null; ChildHolder childholder = null; if (convertView != null) { view = convertView; childholder = (ChildHolder) view.getTag(); } else { view = View.inflate(ExpandableListViewActi.this, R.layout.expand_child, null); childholder = new ChildHolder(); //childholder.mImage = (ImageView) view.findViewById(R.id.image); childholder.mPrice = (TextView) view.findViewById(R.id.textTwo); childholder.mStateText = (TextView) view.findViewById(R.id.textOne); childholder.mSecondPrice = (TextView) view.findViewById(R.id.textThree); view.setTag(childholder); } // childholder.mImage.setOnClickListener(new OnClickListener() { // @Override // public void onClick(View v) { // Toast.makeText(MainActivity.this, "第"+groupPosition+"组的第"+childPosition+"圖標被点击了", 0).show(); // } // }); childholder.mPrice.setText(child_list.get(groupPosition)); int len = group_list.size(); System.out.println(len + "-----------------"); childholder.mStateText.setText(child_list.get(groupPosition)); childholder.mSecondPrice.setText(child_list.get(groupPosition)); return view; } //获取子元素数目 @Override publicint getChildrenCount(int groupPosition) { return child_list.size(); } //获取组元素对象 @Override public Object getGroup(int groupPosition) { return group_list.get(groupPosition); } //获取组元素数目 @Override publicint getGroupCount() { return group_list.size(); } //获取组元素Id @Override publiclong getGroupId(int groupPosition) { return groupPosition; } //加载并显示组元素 @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { View view = null; GroupHolder groupholder = null; if (convertView != null) { view = convertView; groupholder = (GroupHolder) view.getTag(); } else { view = View.inflate(ExpandableListViewActi.this, R.layout.expand_group, null); groupholder = new GroupHolder(); groupholder.mSpaceText = (TextView) view.findViewById(R.id.group_text); view.setTag(groupholder); } groupholder.mSpaceText.setText(group_list.get(groupPosition)); return view; } @Override publicboolean hasStableIds() { returntrue; } @Override publicboolean isChildSelectable(int groupPosition, int childPosition) { returntrue; } }
b.生成主界面代码,设置adapter .expandable四中点击相应事件。
private void initView() { mListView = (ExpandableListView) findViewById(R.id.expandlistview); mInflater = LayoutInflater.from(ExpandableListViewActi.this); group_list = new ArrayList<String>(); for (int i = 0; i < 5; i++) { group_list.add("zcx"); child_list.add("child"); } Adapter adapter = new Adapter(); //mListView.setGroupIndicator(null);/** * ExpandableListView的组监听事件 */// mListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { //// @Override // public boolean onGroupClick(ExpandableListView parent, View v, // int groupPosition, long id) { // Toast.makeText(ExpandableListViewActi.this, "第" + groupPosition + "组被点击了", 0).show(); // return true; // } // });/** * ExpandableListView的组展开监听 */ mListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Override publicvoid onGroupExpand(int groupPosition) { Toast.makeText(ExpandableListViewActi.this, "第" + groupPosition + "组展开", 0).show(); } }); /** * ExpandableListView的组合拢监听 */ mListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { @Override publicvoid onGroupCollapse(int groupPosition) { Toast.makeText(ExpandableListViewActi.this, "第" + groupPosition + "组合拢", 0).show(); } }); /** * ExpandableListView的子元素点击监听 */ mListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { @Override publicboolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { Toast.makeText(ExpandableListViewActi.this, "第" + groupPosition + "组的第" + childPosition + "被点击了", 0).show(); returntrue; } }); mListView.setAdapter(adapter); // int groupCount = mListView.getCount(); // for(int i=0;i<groupCount;i++){ // mListView.expandGroup(i); // } }
3.效果图
原文:http://www.cnblogs.com/zCoderJoy/p/6942391.html
内容总结
以上是互联网集市为您收集整理的android-基础编程-ExpandableListview全部内容,希望文章能够帮你解决android-基础编程-ExpandableListview所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。