QQ分组效果(ExpandableListView)的使用
来源:互联网 发布:出纳日记账软件 编辑:程序博客网 时间:2024/04/30 06:17
QQ分组效果图如下:
JAVA 代码
package com.example.days11expandablelistview0002;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.view.Menu;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView.LayoutParams;import android.widget.BaseExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;public class MainActivity extends Activity { private List<String> grouplist; private List<List<String>> childlist; private ExpandableListView elv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); elv = (ExpandableListView) findViewById(R.id.elv); setData(); MyAdapter adapter = new MyAdapter(); elv.setAdapter(adapter); } class MyAdapter extends BaseExpandableListAdapter { @Override public int getGroupCount() { // TODO Auto-generated method stub return grouplist.size(); } @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub return childlist.get(groupPosition).size(); } @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return grouplist.get(groupPosition); } @Override public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childlist.get(groupPosition).get(childPosition); } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return false; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { String str = grouplist.get(groupPosition); return setView(str); } private View setView(String str) { TextView tv = new TextView(MainActivity.this); LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); tv.setLayoutParams(params); tv.setPadding(36, 0, 0, 0); tv.setGravity(Gravity.CENTER | Gravity.LEFT); tv.setText(str); return tv; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LinearLayout layout = new LinearLayout(MainActivity.this); layout.setOrientation(0); ImageView img = new ImageView(MainActivity.this); int[][] res = new int[][] { { R.drawable.pic10, R.drawable.pic12, R.drawable.pic13, R.drawable.pic14 }, { R.drawable.pic10, R.drawable.pic12, R.drawable.pic13, R.drawable.pic14 }, { R.drawable.pic10, R.drawable.pic12, R.drawable.pic13, R.drawable.pic14 }, { R.drawable.pic10, R.drawable.pic12, R.drawable.pic13, R.drawable.pic14 }, { R.drawable.pic10, R.drawable.pic12, R.drawable.pic13, R.drawable.pic14 }, { R.drawable.pic10, R.drawable.pic12, R.drawable.pic13, R.drawable.pic14 } }; img.setImageResource(res[groupPosition][childPosition]); img.setPadding(10, 0, 0, 0); TextView tv = new TextView(MainActivity.this); tv.setPadding(36, 20, 0, 0); tv.setGravity(Gravity.CENTER | Gravity.LEFT); tv.setText(childlist.get(groupPosition).get(childPosition) .toString()); layout.addView(img); layout.addView(tv); return layout; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return false; } } class ViewHodler { ImageView img; TextView tv; } private void setData() { grouplist = new ArrayList<String>(); childlist = new ArrayList<List<String>>(); addInfo(" ╭⌒⌒╮", new String[] { "张三", "李四", "王五", "赵六" }); addInfo(" ︶ ︶╭⌒⌒╮", new String[] { "张三", "李四", "王五", "赵六" }); addInfo(" ︶ ︶", new String[] { "张三", "李四", "王五", "赵六" }); addInfo("陌上花开", new String[] { "张三", "李四", "王五", "赵六" }); addInfo(" 风景如画", new String[] { "张三", "李四", "王五", "赵六" }); addInfo("一人行走又何妨", new String[] { "张三", "李四", "王五", "赵六" }); } private void addInfo(String string, String[] strings) { grouplist.add(string); List<String> list = new ArrayList<String>(); for (int i = 0; i < strings.length; i++) { list.add(strings[i]); } childlist.add(list); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }}
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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ExpandableListView android:id="@+id/elv" android:layout_width="match_parent" android:layout_height="match_parent"/></RelativeLayout>
0 0
- QQ分组效果(ExpandableListView)的使用
- Android 仿QQ好友分组列表、ExpandableListView的使用详解
- Android ExpandableListView分组效果
- expandableListview 的使用,效果很棒
- ExpandableListView实例(三)_实现QQ中"未分组"效果和"未分组"不可编辑删除功能
- QQ分组效果
- android expandablelistview--实现类似qq界面的效果
- Android之实现QQ好友分组(ExpandableListView)
- Android之实现QQ好友分组(ExpandableListView)
- Android之实现QQ好友分组(ExpandableListView)
- Android之实现QQ好友分组(ExpandableListView) .
- QQ分组实现,可收缩---ExpandableListView
- Android之实现QQ好友分组(ExpandableListView)
- Android仿QQ通讯录分组展示ExpandableListView
- ExpandableListView 模拟QQ好友分组 小实例
- 仿QQ分组折叠菜单ExpandableListView
- Android使用ExpandableListView实现折叠的效果
- 使用ExpandableListView实现好友分组
- Linux上安装weblogic
- Vincent's SQL Server Cookbook: Script the Collation
- javascript对象之this、currentTarget和target
- 指针前钱解析
- OO的思考
- QQ分组效果(ExpandableListView)的使用
- 关于“点击两次退出程序”功能的实现
- 解决phpcms 后台更新提交更新目录出现PHP has encountered a Stack overflow错误
- 搭建OpenACS 服务器
- android应用层相关设置及命令
- xcode7真机调试出现App installation failed的问题解决
- Android 应用内多进程实现
- 动画xml
- Java中的继承和多态