类似QQ好友分组栏
2015-12-14 11:58
246 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/l__yx/article/details/50292987
package com.example.qq; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.app.ListActivity; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.text.method.KeyListener; 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 final int VIEW_TYPE_COUNT = 2; private final String DATA = "data"; private final String TYPE = "type"; private final int GROUP = -2; private final int ITEM = -3; private ArrayList<HashMap<String, Object>> items = null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ListView listView = this.getListView(); ArrayAdapter adapter = new MyAdapter(this, -1); items = new ArrayList<HashMap<String, Object>>(); listView.setAdapter(adapter); String[] str = { "1月", "2月", "3月","4月","5月","6月","7月","8月","9月","10月","11月","12月" }; int[] intt={31,28,31,30,31,30,31,31,30,31,30,31}; int sum=0; for (int i = 0; i < str.length; i++) { HashMap<String, Object> group_map = new HashMap<String, Object>(); group_map.put(TYPE, GROUP); group_map.put(DATA, str[i]); items.add(group_map); for (int j = 0; j < intt[i]; j++) { HashMap<String, Object> data_map = new HashMap<String, Object>(); data_map.put(TYPE, ITEM); data_map.put(DATA, j+1+"号"); items.add(data_map); } } } private class MyAdapter extends ArrayAdapter { private LayoutInflater inflater = null; public MyAdapter(Context context, int resource) { super(context, resource); inflater = LayoutInflater.from(context); } public int getCount() { return items.size(); } @Override public Object getItem(int position) { HashMap<String, Object> map = items.get(position); return map.get(DATA); } // 返回的id可以自己定制。 @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); // 根据不同的view type加载不同的布局文件。 switch (type) { case GROUP: convertView = inflater.inflate(android.R.layout.simple_list_item_2, null); TextView tv1 = (TextView) convertView.findViewById(android.R.id.text1); tv1.setText("2015年"); tv1.setBackgroundColor(Color.RED); TextView tv2 = (TextView) convertView.findViewById(android.R.id.text2); tv2.setText(getItem(position) + ""); tv2.setBackgroundColor(Color.GRAY); break; case ITEM: convertView = inflater.inflate(android.R.layout.simple_list_item_1, null); TextView tv = (TextView) convertView .findViewById(android.R.id.text1); tv.setText(getItem(position) + ""); tv.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { } }); break; } return convertView; } // 解析view type。 // view type值是我们事先埋入到items数据集中的字段值。 // 注意!此处返回的值不要大于getViewTypeCount()的返回值。 @Override public int getItemViewType(int position) { HashMap<String, Object> map = items.get(position); return (Integer) map.get(TYPE); } // 在本例中共计有2个不同类型的view // android.R.layout.simple_list_item_1 和 // android.R.layout.simple_list_item_1. @Override public int getViewTypeCount() { return VIEW_TYPE_COUNT; } } }
<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="com.example.qq.MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout>
相关文章推荐
- Qt自定义控件1:可拖拽排序表格(类似QQ好友分组排序)
- 通讯录的原型实现(二)- 类似QQ好友列表实现,分组名悬浮在最顶部
- swift uitableview 中实现分组,将cell分组显示,类似微信的好友界面
- 基于Qt的类似QQ好友列表抽屉效果的实现
- android开发之ExpandableListView的使用,实现类似QQ好友列表
- SlideMenu(老版本QQ好友分组列表样式)
- 用ExpandableListView实现类似QQ好友的功能【原创】
- 用JavaScript实现类似QQ好友上线的提示窗体
- android 仿qq好友列表分组效果及联系人分组效果
- ExpandableListView的使用,实现类似QQ好友列表
- android开发之ExpandableListView的使用,实现类似QQ好友列表
- QQ 添加分组 添加好友
- ExpandableListView实现的简单类似QQ好友界面的可展开下拉列表
- 类似qq分组栏-动态分组
- Android UI视图效果篇之仿QQ好友列表分组悬浮PinnedHeaderExpandableListView
- 用ExpandableListView实现类似QQ好友列表
- Android UI视图效果篇之仿QQ好友列表分组悬浮PinnedHeaderExpandableListView
- 仿StickyListHeaders 实现listview的header滑动效果(类似QQ好友列表)
- 自定义UITableViewCell,实现类似QQ好友列表
- UITableView的折叠收缩和QQ好友分组效果