首页 文章 精选 留言 我的

精选列表

搜索[android studio],共10000篇文章
优秀的个人博客,低调大师

android 支持分组和联系人展示的一个小样例

先看效果图: 要实现这个效果,activity必须实现ExpandableListActivity @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); mContactListView = getExpandableListView(); mContactListView.setBackgroundResource(R.drawable.default_bg); registerForContextMenu(mContactListView); mContactDataBase = ((ContactApplication) getApplication()) .getmContactDataBase(); getExpandableListView().setCacheColorHint(0);// 拖动时避免出现黑色 getExpandableListView().setDivider(null);// 去掉每项以下的黑线(切割线) // 自己定义下拉图标 getExpandableListView().setGroupIndicator( getResources().getDrawable(R.drawable.expander_ic_folder)); setAdatperForExpandableListView(); } /** * 设置ExpandableListView的adapter */ private void setAdatperForExpandableListView() { Cursor groupCursor = mContactDataBase.getAllGroups(); //这个是从数据库里查询出全部的组 Util.d(TAG, "groupCursor=" + groupCursor); // curosr的生命周期将和activity有关 startManagingCursor(groupCursor); // set my adapter <strong>ContactTreeAdapter </strong>contactTreeAdapter = new ContactTreeAdapter( groupCursor, this, true, mContactDataBase); setListAdapter(contactTreeAdapter); } 主要实现 ContactTreeAdapter这个adapter public class ContactTreeAdapter extends CursorTreeAdapter { /** log tag. */ private static final String TAG = "ContactTreeAdapter"; /** context */ public Context mContext = null; private Cursor mCursor = null; private ContactDataBase mContactDataBase; // contact表字段索引 private static final int INDEX_NAME = 1; private static final int INDEX_PHONENUMBER = 2; // group表字段索引 private static final int INDEX_GROUPNAME = 1; public ContactTreeAdapter(Cursor cursor, Context context, boolean autoRequery, ContactDataBase contactDataBase) { super(cursor, context, autoRequery); mContext = context; this.mContactDataBase = contactDataBase; // TODO Auto-generated constructor stub } @Override protected Cursor getChildrenCursor(Cursor groupCursor) { // TODO Auto-generated method stub String groupName = groupCursor.getString(INDEX_GROUPNAME);// 得到当前的组名 Cursor childCursor = mContactDataBase.getContactsByGroupName(groupName); return childCursor; } @Override protected View newGroupView(Context context, Cursor cursor, boolean isExpanded, ViewGroup parent) { // TODO Auto-generated method stub Util.d(TAG, "newGroupView"); LayoutInflater inflate = LayoutInflater.from(mContext); View view = inflate.inflate(R.layout.grouplayout, null); bindGroupView(view, context, cursor, isExpanded); return view; } @Override protected void bindGroupView(View view, Context context, Cursor cursor, boolean isExpanded) { // TODO Auto-generated method stub Util.d(TAG, "bindGroupView"); TextView groupName = (TextView) view.findViewById(R.id.groupName); String group = cursor.getString(INDEX_GROUPNAME); groupName.setText(group); TextView groupCount = (TextView) view.findViewById(R.id.groupCount); int count = mContactDataBase.getCountContactByGroupName(group); Util.d(TAG, "count=" + count + "group=" + group); groupCount.setText("[" + count + "]"); } @Override protected View newChildView(Context context, Cursor cursor, boolean isLastChild, ViewGroup parent) { // TODO Auto-generated method stub Util.d(TAG, "newChildView"); LayoutInflater inflate = LayoutInflater.from(mContext); View view = inflate.inflate(R.layout.childlayout, null); bindChildView(view, context, cursor, isLastChild); return view; } @Override protected void bindChildView(View view, Context context, Cursor cursor, boolean isLastChild) { // TODO Auto-generated method stub Util.d(TAG, "bindChildView cursor.getString(INDEX_PHONENUMBER)=" + cursor.getString(INDEX_PHONENUMBER)); TextView name = (TextView) view.findViewById(R.id.name); name.setText(cursor.getString(INDEX_NAME)); TextView description = (TextView) view.findViewById(R.id.description); description.setTextKeepState(cursor.getString(INDEX_PHONENUMBER)); } }<strong> </strong> 由于这个adapter的函数命名就能够看出是干什么的就不一一解释了 代码能够在http://download.csdn.net/detail/baidu_nod/7684649下载 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5182353.html,如需转载请自行联系原作者

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册