莫问天涯路几重,轻衫侧帽且从容。这篇文章主要讲述android qq开合表相关的知识,希望能为你提供帮助。
【android qq开合表】qq悬浮列表功能暂未实现
main。xml
< RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Activity.Demo9Activity"> < ExpandableListView android:id="@+id/demo9_expendablelistview" android:layout_width="match_parent" android:layout_height="match_parent" /> < /RelativeLayout>
adapter
public class Demo9Adapter extends BaseExpandableListAdapter {private List< String> groupList; //外层的数据源 private List< List< String> > childList; //里层的数据源 private Context context; public Demo9Adapter(Context context, List< String> groupList,List< List< String> > childList ){ this.context = context; this.groupList = groupList; this.childList = childList; }@Override public int getGroupCount() { return groupList.size(); }/** * 这个返回的一定要是对应外层的item里面的List集合的size * @param groupPosition * @return */ @Override public int getChildrenCount(int groupPosition) { return childList.get(groupPosition).size(); }@Override public Object getGroup(int groupPosition) { return groupPosition; }@Override public Object getChild(int groupPosition, int childPosition) { return childList.get(groupPosition).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) { convertView = View.inflate(context, R.layout.item_demo9_style1, null); //分组名字 TextView textView = (TextView) convertView.findViewById(R.id.group_name); //子元素的个数 TextView number = (TextView) convertView.findViewById(R.id.count); number.setText(childList.get(groupPosition).size()+"个"); textView.setText(groupList.get(groupPosition)); return convertView; }@Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View view, ViewGroup viewGroup) { view = View.inflate(context, R.layout.item_demo9_style2, null); TextView textView = (TextView) view.findViewById(R.id.child_name); //外层的分组名字 textView.setText(childList.get(groupPosition).get(childPosition)); return view; }@Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; }}
main
private ExpandableListView expandableListView; private Demo9Adapter myAdapter; private List< String> groupList; private List< List< String> > childList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo9); initView(); } //分组悬浮private void initView() { expandableListView = (ExpandableListView) findViewById(R.id.demo9_expendablelistview); groupList = new ArrayList< > (); childList = new ArrayList< > (); addData("幼稚园同学",new String[]{"周杰伦","江一燕 ","佟丽娅","高圆圆","刘诗诗","刘亦菲","angleBaby","张静初","张含韵",}); addData("小学同学",new String[]{"光头强","熊大","熊二","妙蛙种子","比卡丘","双蛋瓦斯","贪吃蛇"}); addData("初中同学",new String[]{"吉泽明步","波多野结衣","爱川美里菜","小川阿佐美","桃谷绘里香","泷泽萝拉","北原多香子","石川施恩惠","北条麻妃","麻仓优","羽田爱","保坂绘里"}); addData("高中同学",new String[]{"秦始皇","李世民","武则天","曹操","刘备","孙权"}); addData("大学同学",new String[]{"周杰伦","江一燕 ","佟丽娅","高圆圆","刘诗诗","刘亦菲","angleBaby","张静初","张含韵",}); addData("研究生同学",new String[]{"光头强","熊大","熊二","妙蛙种子","比卡丘","双蛋瓦斯","贪吃蛇"}); addData("博士同学",new String[]{"小川阿佐美","桃谷绘里香","泷泽萝拉","北原多香子","石川施恩惠","北条麻妃","麻仓优","羽田爱","保坂绘里"}); addData("教授同事",new String[]{"秦始皇","李世民","武则天","曹操","刘备","孙权"}); addData("众仙家名册",new String[]{"苍井空","小泽玛利亚","吉泽明步","波多野结衣","爱川美里菜","小川阿佐美","桃谷绘里香","泷泽萝拉","北原多香子","石川施恩惠","北条麻妃","麻仓优","羽田爱","保坂绘里","秦始皇","李世民","武则天","曹操","刘备","孙权"}); myAdapter = new Demo9Adapter(this,groupList,childList); expandableListView.setAdapter(myAdapter); //首次加载全部展开for (int i = 0; i < groupList.size(); i++) {if(i==0){ expandableListView.collapseGroup(i); }else { expandableListView.expandGroup(i); } }//2、不能点击收缩:expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {@Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { // TODO Auto-generated method stub return false; } }); //长按事件 expandableListView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { // TODO Auto-generated method stub menu.setHeaderTitle("选择操作"); //DOWNLOAD_RETRYDOWNLOAD_DELDOWNLOAD_START menu.add(0,0 , 0,"重试"); menu.add(0, 1, 0, "删除"); menu.add(0, 2, 0, "启动"); } }); }/** * 用来添加数据的方法 */ private void addData(String group, String[] friend) { groupList.add(group); //每一个item打开又是一个不同的list集合 List< String> childitem = new ArrayList< > (); for (int i = 0; i < friend.length; i++) { childitem.add(friend[i]); } childList.add(childitem); } /** * 长按菜单响应函数 */ @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub //关键< span class="wp_keywordlink" style="margin: 0px; padding: 0px; border: 0px; background: transparent; "> < a target=_blank href="http://www.xuebuyuan.com/" title="代码" target="_blank" style="text-decoration: none; color: rgb(1, 150, 227); "> 代码< /a> < /span> ExpandableListView.ExpandableListContextMenuInfo info = (ExpandableListView.ExpandableListContextMenuInfo) item.getMenuInfo(); int type = ExpandableListView.getPackedPositionType(info.packedPosition); if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {//上面的type设定这里类型的判定!这里是child判定! int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); //在child判定里面,获取该child所属group! int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition); //在child判定里面,获取该child所属position! switch (item.getItemId()) { case 0: Toast.makeText(this,"我是重试",Toast.LENGTH_SHORT).show(); //makeTextShort("我是重试"); break; case 1: Toast.makeText(this,"我是删除",Toast.LENGTH_SHORT).show(); break; case 2: Toast.makeText(this,"我是启动",Toast.LENGTH_SHORT).show(); default: break; } return true; } return false; }
数据参考:http://blog.csdn.net/dl10210950/article/details/52525492
推荐阅读
- Android Studio第四十一期 - WIFI开发
- Android studio安装配置常见问题及其解决方案
- xamarin.Android 开发环境
- Android自己定义RatingBar
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Android 基于ijkplayer+Rxjava+Rxandroid+Retrofit2.0+MVP+Material Design的android万能播放器aaa
- 关于Android应用中图片占用内存浅谈
- Java Service Wrapper简介与使用
- mybatis的mapper映射文件中where,if,foreach等的使用