package com.lixu.fenzu;

 import java.util.ArrayList;
import java.util.HashMap; import android.app.ListActivity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater; import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView; public class MainActivity extends ListActivity {
private static final String TYPE = "type";
private static final String DATE = "date";
private static final int GROUP = -1;
private static final int ITEM = -2; private ArrayList<HashMap<String, Object>> item = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); ListView lv = this.getListView();
ArrayAdapter adapter = new MyAdaper(this, 1); item = new ArrayList<HashMap<String, Object>>(); String[] groups = { "家人", "朋友", "同学", "同事" };
String[] date = { "张三", "李四", "王五", "狗儿" };
for (String str:groups) {
HashMap<String, Object> group_map = new HashMap<String, Object>(); group_map.put(TYPE, GROUP);
group_map.put(DATE, str);
item.add(group_map);
for (String n : date) { HashMap<String, Object> date_map = new HashMap<String, Object>(); date_map.put(TYPE, ITEM);
date_map.put(DATE, n);
item.add(date_map); } }
lv.setAdapter(adapter); } public class MyAdaper extends ArrayAdapter {
private LayoutInflater flater = null; public MyAdaper(Context context, int resource) {
super(context, resource);
flater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
} @Override
public int getCount() {
return item.size();
} @Override
public int getItemViewType(int position) {
HashMap<String, Object> map = item.get(position);
return (Integer) map.get(TYPE);
} @Override
public int getViewTypeCount() { return 2;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
// 根据不同的view type加载不同的布局文件。
switch (type) {
case GROUP: convertView = flater.inflate(R.layout.activity_main, null);
TextView tv1 = (TextView) convertView.findViewById(R.id.tv1);
tv1.setText(item.get(position).get(DATE) + "");
tv1.setBackgroundColor(Color.RED);
tv1.setTextSize(20); break;
case ITEM:
convertView = flater.inflate(R.layout.activity_main, null);
TextView tv2 = (TextView) convertView.findViewById(R.id.tv1);
tv2.setText(item.get(position).get(DATE) + ""); break; default:
break;
} return convertView;
} }
}

运行效果:

模拟QQ分组的更多相关文章

  1. 模拟QQ分组(具有伸缩功能) (添加开源框架的光闪烁效果)SimpleExpandableListAdapter 适配器的用法,并且可添加组及其组内数据。

    package com.lixu.qqfenzu; import java.util.ArrayList; import java.util.HashMap; import java.util.Lis ...

  2. java 模拟qq源码

    java 模拟qq源码: http://files.cnblogs.com/files/hujunzheng/QQ--hjzgg.zip

  3. 利用phantomjs模拟QQ自动登录

    之前为了抓取兴趣部落里的数据,研究了下QQ自动登录. 当时搜索了一番,发现大部分方法都已经失效了,于是准备自己开搞. 第一个想到的就是参考网上已有方案的做法,梳理登陆js的实现,通过其他语言重写.考虑 ...

  4. Android ExpandableListView BaseExpandableListAdapter (类似QQ分组列表)

    分组列表视图(ExpandableListView) 和ListView不同的是它是一个两级的滚动列表视图,每一个组可以展开,显示一些子项,类似于QQ列表,这些项目来至于ExpandableListA ...

  5. 模拟QQ系统设置面板实现功能

    业务需求: 基于网盘客户端的实现,原有网盘的设置面板无论从界面显示还是从业务需求都不能满足我们的正常需求.当前的要求是,模拟QQ系统设置的面板实现当前我们网盘中的基本配置功能.在完成这篇文章时已将基本 ...

  6. WPF案例 (三) 模拟QQ“快速换装"界面

    原文:WPF案例 (三) 模拟QQ"快速换装"界面 这个小程序使用Wpf模拟QQ快速换装页面的动画特效,通过使用组合快捷键Ctrl+Left或Ctrl+Right,可实现Image ...

  7. Android简易实战教程--第二十二话《自定义组合控件模拟qq登录下拉框和其中的一些”小技巧”》

    转载此文章请注明出处:点击打开链接   http://blog.csdn.net/qq_32059827/article/details/52313516 首先,很荣幸此专栏能被CSDN推荐到主页.荣 ...

  8. 模拟QQ聊天与视频聊天同时进行-------java基础知识总结

    前言:多线程的知识 代码: package com.day13.math; /** * 类说明 :模拟QQ聊天与视频聊天同时进行 * @author 作者 : chenyanlong * @versi ...

  9. python模拟QQ聊天室(tcp加多线程)

    python模拟QQ聊天室(tcp加多线程) 服务器代码: from socket import * from threading import * s = socket(AF_INET,SOCK_S ...

随机推荐

  1. C#中基于流的XML文件操作笔记

    System.Xml.XmlReader和System.Xml.XmlWriters是两个抽象类,XmlReader提供了对于XML数据的快速,非缓存,只进模式的读取器,XmlWriter表示一个编写 ...

  2. LightOJ 1199 Partitioning Game(sg函数)题解

    题意:可以把一堆石子分成不相等的两堆,不能操作为败 思路:把一个石子拆成两个,变成了两个独立的游戏,mex里加上两者的sg异或.sg打表. 代码: #include<set> #inclu ...

  3. Max Factor(素数筛法)题解

    Max Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. decimal and double ToString problem

    decimal d2 = 0.0000002500m; Console.WriteLine(d2.ToString()); double d3 = 0.0000002500; Console.Writ ...

  5. BZOJ5142: [Usaco2017 Dec]Haybale Feast 线段树或二分答案

    Description Farmer John is preparing a delicious meal for his cows! In his barn, he has NN haybales ...

  6. 4、CommonChunkPlugin提取公共js-提取多个

    cnpm install css-loader --save-dev    //css-loader 是将css打包进js cnpm install style-loader --save-dev   ...

  7. SQL 事务(Transaction)

    1.概念 指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)由多个sql语句组成,必须作为一个整体执行这些sql语句作为一个整体一起向系统提交,要么都执行.要么都不执行 语法步骤:开始事 ...

  8. 实现分享功能插件2---jiathis分享插件应用

    博主原创:未经博主允许,不得转载 在上一篇的博文中分享了如何用百度分享插件实现分享功能,现在展示用jiathis进行实现分享功能: 主要代码如下: <body> <div class ...

  9. HDU 1171 Big Event in HDU(0-1背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=1171 题意:给出一系列的价值,需要平分,并且尽量接近. 思路:0—1背包问题. 0-1背包问题也就是有n种物品且 ...

  10. C++:delete不完整类型的指针

    简单版 以下代码编译时会有warning: class X; void foo(X* x) { delete x; } 在GCC4.1.2下,编译出错信息是: warning: possible pr ...