使用ExpandableListActivity实现可展开的Activity
来源:互联网 发布:ubuntu vmdk镜像下载 编辑:程序博客网 时间:2024/06/06 05:01
package com.example.android_test;import android.app.ExpandableListActivity;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.BaseExpandableListAdapter;import android.widget.ExpandableListAdapter;import android.widget.LinearLayout;import android.widget.TextView;public class MyExpandableListActivity extends ExpandableListActivity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//创建适配器,使用BaseExpandableListAdapterExpandableListAdapter adapter=new BaseExpandableListAdapter() {String[] listTitles={"列表标题1","列表标题2","列表标题3"};String[][] listContents={{"内容1","内容1","内容1","内容1","内容1"},{"内容2","内容2","内容2"},{"内容3","内容3","内容3","内容3"}};/** * 是否选中指定位置上的子元素。 * 参数 * groupPosition 组位置(该组内部含有这个子元素) * childPosition 子元素位置 * 返回值 * 是否选中子元素 */public boolean isChildSelectable(int groupPosition, int childPosition) {return true;}@Overridepublic int getGroupCount() {return listTitles.length;}@Overridepublic int getChildrenCount(int groupPosition) {return listContents[groupPosition].length;}/** * 获取指定组中的数据 参数 groupPosition 组位置 返回值 返回组中的数据,也就是该组中的子元素数据。 */@Overridepublic Object getGroup(int groupPosition) {return listTitles[groupPosition];}/** * 获取指定组中的指定子元素数据。 * 返回值:返回指定子元素数据。 */@Overridepublic Object getChild(int groupPosition, int childPosition) {return listContents[groupPosition][childPosition];}/** * 获取指定组的ID,这个组ID必须是唯一的。联合ID(参见getCombinedGroupId(long))在所有条目(所有组和所有元素)中也是唯一的。 参数 groupPosition 组位置 返回值 返回组相关ID */@Overridepublic long getGroupId(int groupPosition) {return groupPosition;}/** * 获取指定组中的指定子元素ID,这个ID在组里一定是唯一的。 * 参数 * groupPosition 组位置(该组内部含有子元素) * childPosition 子元素位置(相对于其它子元素) * 返回值 * 子元素关联ID。 */@Overridepublic long getChildId(int groupPosition, int childPosition) {return childPosition;}/** * 组和子元素是否持有稳定的ID,也就是底层数据的改变不会影响到它们。 返回值 返回一个Boolean类型的值,如果为TRUE,意味着相同的ID永远引用相同的对象。 */@Overridepublic boolean hasStableIds() {return true;}/** * 决定每个组选项的外观 * 获取显示指定组的视图对象。这个方法仅返回关于组的视图对象,要想获取子元素的视图对象,就需要调用getChildView(int, int, boolean, View, ViewGroup)。 参数 groupPosition 组位置(决定返回哪个视图) isExpanded 该组是展开状态还是伸缩状态 convertView 重用已有的视图对象。注意:在使用前你应该检查一下这个视图对象 是否非空并且这个对象的类型是否合适。由此引伸出,如果该对象不能 被转换并显示正确的数据,这个方法就会调用 getGroupView(int, boolean, View, ViewGroup) 来创建一个视图(View)对象。 parent 返回的视图对象始终依附于的视图组。 返回值 返回指定组的视图对象 */@Overridepublic View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {LinearLayout ll=new LinearLayout(MyExpandableListActivity.this);ll.setOrientation(0);TextView textView=getTextView();textView.setText(getGroup(groupPosition).toString());ll.addView(textView);return ll;}/** * 获取一个视图对象,显示指定组中的指定子元素数据。 参数 groupPosition 组位置(该组内部含有子元素) childPosition 子元素位置(决定返回哪个视图) isLastChild 子元素是否处于组中的最后一个 convertView 重用已有的视图(View)对象。注意:在使用前你应该检查一下这个视图对象是否非空并且这个对象的类型是否合适。 由此引伸出,如果该对象不能被转换并显示正确的数据, 这个方法就会调用getChildView(int, int, boolean, View, ViewGroup) 来创建一个视图(View)对象。 parent 返回的视图(View)对象始终依附于的视图组。 返回值 指定位置上的子元素返回的视图对象 */@Overridepublic View getChildView(int groupPosition, int childPosition,boolean isLastChild, View convertView, ViewGroup parent) {TextView textView=getTextView();textView.setText(getChild(groupPosition, childPosition).toString());return textView;}//创建方法getTextViewprivate TextView getTextView() {//AbsListView.LayoutParams.LayoutParams(int width, int height)//Abslistview 是用于实现条目的虚拟列表的基类.AbsListView.LayoutParams lp=new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 64);TextView textView=new TextView(MyExpandableListActivity.this);textView.setLayoutParams(lp);textView.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.LEFT);textView.setTextSize(20);textView.setPadding(60, 0, 0, 0);return textView;}};setListAdapter(adapter);}}
0 0
- 使用ExpandableListActivity实现可展开的Activity
- Android ExpandableListActivity实现可展开的activity
- 可展开的Activity ExpandableListActivity的使用
- ExpandableListActivity实现展开或隐藏子项
- 第八课:Activity 及其子类的使用二:ExpandableListActivity
- ExpandableListActivity的基本实现
- 使用CollapsingToolbarLayout实现可展开与收缩的导航栏
- [Android] ExpandableListActivity的使用
- ExpandableListActivity的使用
- ExpandableListActivity 的使用
- 实现可点击展开的 TextView
- 一种可展开伸缩的tableView实现
- 实现可点击展开的 TextView
- 实现可点击展开的 TextView
- ExpandableListActivity的学习和使用
- ExpandableListView的使用,可展开的ListView
- ExpandableListActivity的使用和SimpleExpandableListAdapter的使用
- 可展开的TextView
- 对深拷贝与浅拷贝的再次理解
- jqueryAPI删除造成的问题
- JavaWeb之HttpServletRequest对象
- java反射获取每个属性和属性值
- Binary String Matching
- 使用ExpandableListActivity实现可展开的Activity
- 设计模式之七 --- 观察者模式(Observer)
- Oracle安装
- Java正则表达式_常用总结
- 灵活控制权限
- freemarker生成word模版文档及list便利数据(二)
- CentOS 6.3下rsync服务器的安装与配置
- 脚本打包
- Android之HttpURLConnection