最近在做一个Rss阅读器,我看了一看别人做的阅读器中的lisView可以伸缩,展开,我就在网上搜索了一下。果然让我找到,下面就我找到的一个小例子,给大家分享一下。

ActivityMain .java

package com.android;

import android.app.ExpandableListActivity;

import android.os.Bundle;

import android.view.ContextMenu;

import android.view.MenuItem;

import android.view.View;

import android.view.ContextMenu.ContextMenuInfo;

import android.widget.ExpandableListAdapter;

import android.widget.ExpandableListView;

import android.widget.TextView;

import android.widget.Toast;

import android.widget.ExpandableListView.ExpandableListContextMenuInfo;

public class ActivityMain extends ExpandableListActivity {

private ExpandableListAdapter mAdapter;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

this.setTitle("ExpandableList");

mAdapter = new MyExpandableListAdapter(this);

setListAdapter(mAdapter);

registerForContextMenu(this.getExpandableListView());

}

//为列表的每一项创建上下文菜单(即长按后 呼出的菜单)

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

menu.setHeaderTitle("ContexMenu");

menu.add(0,0,0,"ContextMenu");

}

//单击上下文菜单后的逻辑

@Override

public boolean onContextItemSelected(MenuItem item) {

ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo)item.getMenuInfo();

String title = ((TextView) info.targetView).getText().toString();

int type =ExpandableListView.getPackedPositionType(info.packedPosition);

if(type == ExpandableListView.PACKED_POSITION_TYPE_CHILD)

{

int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition);

int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition);

Toast.makeText(this, title+"-Group Index"+groupPos+"Child Index:"+childPos,

Toast.LENGTH_SHORT).show();

return true;

}

return false;

}

MyExpandableListAdapter.java

package com.android;

import android.content.Context;

import android.view.Gravity;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AbsListView;

import android.widget.BaseExpandableListAdapter;

import android.widget.TextView;

public class MyExpandableListAdapter extends BaseExpandableListAdapter {

private Context mContext;

//父列表数据

private String[] groups ={"group1","group2","group3","group4",""};

//子列表数据

private String [][] children ={

{"child1"},

{"child1","child2"},

{"child1","child2","child3"},

{"child1","child2","child3","child4"},

};

MyExpandableListAdapter(Context context){

mContext = context;

}

@Override

public Object getChild(int groupPosition, int childPosition) {

// TODO Auto-generated method stub

return children[groupPosition][childPosition];

}

@Override

public long getChildId(int groupPosition, int childPosition) {

// TODO Auto-generated method stub

return childPosition;

}

//取子列表中的某一项的view

@Override

public View getChildView(int groupPosition, int childPosition,

boolean isLastChild, View convertView, ViewGroup parent) {

TextView textView = getGenericView();;

textView.setText(getChild(groupPosition, childPosition).toString());

return textView;

}

@Override

public int getChildrenCount(int groupPosition) {

// TODO Auto-generated method stub

return children[groupPosition].length;

}

@Override

public Object getGroup(int groupPosition) {

return groups[groupPosition];

}

@Override

public int getGroupCount() {

// TODO Auto-generated method stub

return groups.length;

}

@Override

public long getGroupId(int groupPosition) {

// TODO Auto-generated method stub

return groupPosition;

}

@Override

public View getGroupView(int groupPosition, boolean isExpanded,

View convertView, ViewGroup parent) {

TextView textView = getGenericView();

textView.setText(getGroup(groupPosition).toString());

return textView;

}

@Override

public boolean hasStableIds() {

// TODO Auto-generated method stub

return true;

}

@Override

public boolean isChildSelectable(int groupPosition, int childPosition) {

// TODO Auto-generated method stub

return true;

}

//获取某一项的view的逻辑

private TextView getGenericView(){

AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,48);

TextView textView = new TextView(mContext);

textView.setLayoutParams(lp);

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);

textView.setPadding(32, 0, 0, 0);

return textView;

}

}

运行的结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java 列表展开方式_android列表控件实现展开、收缩功能相关推荐

  1. java imageview的使用_Android使用控件ImageView加载图片的方法

    在 Android 加载图片一般使用 ImageView,这里简单记录一下这个控件的使用方法. 最简单就是在 xml 里直接使用 ImageView 标签: android:orientation=& ...

  2. IE5下通过、不会被列表框遮挡的日期控件

    一般不会被列表框遮挡的日期控件都是用一个透明的iframe来做的,但在IE5下因为透明风格不被支持却无法正常使用.这个控件直接使用iframe作为日期选择界面,就解决了兼容性问题.不过只有简单的选择功 ...

  3. IE已经阻止此站点以不安全的方式使用ActiveX控件的解决

    声明:这是转帖的 原帖地址:http://blog.pfan.cn/yuqiexing/52344.html IE8很烦躁.今天尝试ocx控件发消息的时候,死活不行.终于看到一行小字: "电 ...

  4. Internet Explorer 已经阻止此站点以不安全的方式使用ActiveX控件(多种解决方法)

    一.电脑出现IE已经阻止此站点以不安全的方式使用ActiveX控件,因此该网页无法正确显示"的处理办法: 1.更改安全级别.. 如果你看不懂或者不会,我教你一个简单的. 打开IE.找到上方的 ...

  5. java多文件上传plupload控件实现多图片上传(二)

    接上篇 java多文件上传plupload控件实现多图片上传(一) 续写PluploadUtil 和 Plupload PO类,以及后台的action. 至此,可实现多文件上传功能. 上传文件Acti ...

  6. android 仿旅游日历控件_Android日历控件MaterialCalendarView

    calendar.png 最近项目中需要用到日历控件,1.需要给已经记录的日期添加圆环标记2.给当天日期添加背景3.给周末日期更改颜色4.日历添加农历,需求如上图所示: GitHub的material ...

  7. 牛牛截图插件java实例_[分享]牛牛截图控件最终版

    实现牛牛截图控件的初衷,是想在学习的同时,实现一个具备当前主流截图功能的插件,方便集成进不同的应用系统中,节省开发时间. 一直以来,都对目前各主流即时通讯软件的截图效果比较喜欢,前段时间专门花时间进行 ...

  8. SAP UI5 应用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除功能试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  9. 露雨资源库三(第一个.net2.0软件)-为控件增加自动完成功能

    前面我写过"露雨资源库"的第一篇和第二篇,分别介绍了界面设计和设计思路. 链接如下: 露雨资源库(第一个.net2.0软件)一 http://luyu.cnblogs.com/ar ...

最新文章

  1. js 动态拼接html 正则,在JavaScript中使用动态(可变)字符串作为正则表达式模式...
  2. 大话javascript 2期:执行上下文与执行上下文栈
  3. 使用编辑工具快速创建实体对象的方法
  4. java mvc mvp_MVC和MVP设计模式
  5. SpringBoot中@Email报错解决
  6. android 跑windows软件,Windows 10 Mobile用户现可让设备跑上Android软件
  7. 勤哲web配置教程_勤哲excel服务器安装与使用
  8. 基于taskctl实现kettle任务调度
  9. 安卓机型app的编译与反编译 apk文件的简单说明与解析
  10. Hadoop 十年解读与发展预测(插图+排版)
  11. 如何低格台式计算机的硬盘,低级格式化,教您硬盘如何进行低级格式化
  12. QT:主页面全屏显示(根据显示屏分辨率调整主页面尺寸)
  13. 哪位大神能帮我解读下这段代码什么意思吗???万分感谢
  14. 腾讯云云硬盘快速入门-挂载云硬盘
  15. “1448万,一条命”:在生命面前,金钱显得太刺眼
  16. 谁又在乎过你呢“main()之泪伤”
  17. Windows磁盘管理工具Diskpart之二 管理动态磁盘
  18. 谷歌三大核心技术(一)The Google File System中文版
  19. Matlab绘制误差棒图----errorbar函数的使用
  20. 2. 深度生成模型-扩散模型(去噪扩散概率模型)

热门文章

  1. Asp.NetCore轻松学-部署到 IIS 进行托管
  2. Actor-ES框架:Ray--事件(Event)编写说明
  3. .NET Core 工具中的新内容
  4. get√—搜索微信公众号【Dotnet跨平台】指定文章的办法
  5. CSDN博客文章阅读模式插件(附源码)
  6. Android之You need to use a Theme.AppCompat theme (or descendant) with this activity.
  7. Android之在Activity中动态得到Adapter类中数据
  8. Linux下最简单的修改文件名后缀的命令行技巧
  9. sqlite数据库备份还原、导出导入
  10. Android之内存溢出(Out Of Memory)的总结