zoukankan      html  css  js  c++  java
  • 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_RETRY  DOWNLOAD_DEL  DOWNLOAD_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

  • 相关阅读:
    png-8 和 png-24的区别
    css控制标题长度超出部分显示省略号
    php正则表达式
    10分钟了解JSON Web令牌(JWT)
    Python制作微信小助手
    优质网站、赚钱、教程、分享、网赚
    从Github上将laravel项目拉到新开发环境
    gitlab添加公钥
    Git 配置用户名、密码
    虚拟机Oracle VM VirtualBox linux系统如何访问windows共享文件夹
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/7079524.html
Copyright © 2011-2022 走看看