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
时间: 2024-10-09 06:58:54