android expandablelistview

转载 2013年12月05日 09:54:56



若是要看原文和详细,请支持别人的原创。

请连接转载。

转载地址:

http://www.cnblogs.com/sczjhh/archive/2012/11/26/szh.html





package com.eyu.activity_test;

import android.content.Context;
import android.graphics.Color;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

/**
 * @author Administrator
 * @date &{date}
 */
public class ExpandableAdapter extends BaseExpandableListAdapter{
    private Context context;
    public ExpandableAdapter(Context context){
        this.context = context;
    }
    
    int[] logos = new int[] { R.drawable.wei, R.drawable.shu,R.drawable.wu};
    //设置组视图的显示文字
    private String[] generalsTypes = new String[] { "魏", "蜀", "吴" };
    //子视图显示文字
    private String[][] generals = new String[][] {
            { "夏侯惇", "甄姬", "许褚", "郭嘉", "司马懿", "杨修" },
            { "马超", "张飞", "刘备", "诸葛亮", "黄月英", "赵云" },
            { "吕蒙", "陆逊", "孙权", "周瑜", "孙尚香" }

    };
    //子视图图片
    public int[][] generallogos = new int[][] {
            { R.drawable.xiahoudun, R.drawable.zhenji,
                    R.drawable.xuchu, R.drawable.guojia,
                    R.drawable.simayi, R.drawable.yangxiu },
            { R.drawable.machao, R.drawable.zhangfei,
                    R.drawable.liubei, R.drawable.zhugeliang,
                    R.drawable.huangyueying, R.drawable.zhaoyun },
            { R.drawable.lvmeng, R.drawable.luxun, R.drawable.sunquan,
                    R.drawable.zhouyu, R.drawable.sunshangxiang } };
    
    //自己定义一个获得文字信息的方法
    TextView getTextView() {
        AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT, 84);
        TextView textView = new TextView(
                context);
        textView.setLayoutParams(lp);
        textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);
        textView.setPadding(36, 0, 200, 0);
        textView.setTextSize(20);
        textView.setTextColor(Color.BLACK);
        return textView;
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return generals[groupPosition][childPosition];
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return childPosition;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition,
            boolean isLastChild, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        LinearLayout ll = new LinearLayout(
                context);
        ll.setOrientation(0);
        ImageView generallogo = new ImageView(
                context);
        generallogo
                .setImageResource(generallogos[groupPosition][childPosition]);
        ll.addView(generallogo);
        TextView textView = getTextView();
        textView.setText(getChild(groupPosition, childPosition)
                .toString());
        ll.addView(textView);
        return ll;
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        // TODO Auto-generated method stub
        return generals[groupPosition].length;
    }

    @Override
    public Object getGroup(int groupPosition) {
        // TODO Auto-generated method stub
        return generalsTypes[groupPosition];
    }

    @Override
    public int getGroupCount() {
        // TODO Auto-generated method stub
        return generalsTypes.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) {
        // TODO Auto-generated method stub
        LinearLayout ll = new LinearLayout(
                context);
        ll.setOrientation(LinearLayout.HORIZONTAL);
        ImageView logo = new ImageView(context);
        logo.setImageResource(logos[groupPosition]);
        logo.setPadding(0, 0, 0, 0);
        ll.addView(logo);
        TextView textView = getTextView();
        textView.setTextColor(Color.BLACK);
        textView.setText(getGroup(groupPosition).toString());
        ll.addView(textView);
          
        ImageView iv  =new ImageView(context);
        iv.setPadding(70, 0, 0, 0);
        if (isExpanded) {
            iv.setBackgroundResource(R.drawable.btn1);
        } else {
            iv.setBackgroundResource(R.drawable.btn2);
        }
        ll.addView(iv);

        return ll;
//        LinearLayout ll = (LinearLayout) View.inflate(    context, R.layout.list_item    , null);
//        TextView tv = (TextView)ll.findViewById(R.id.tv);
//        ImageView iv1 = (ImageView)ll.findViewById(R.id.iv1);
//        ImageView iv2 = (ImageView)ll.findViewById(R.id.iv2);
//        tv.setText(getGroup(groupPosition).toString());
//        iv1.setBackgroundResource(logos[groupPosition]);
//        if (isExpanded) {
//            
//            iv2.setBackgroundResource(R.drawable.btn1);
//        } else {
//            iv2.setBackgroundResource(R.drawable.btn2);
//        }
//        return null;
    }

    @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;
    }

}


android ExpandableListView 界面更新数据

今天使用ExpandableListView 进行数据更新的时候,发现使用ListView的那一套更新数据的方法行不通,后来在网上查阅了一些资料,发现ExpandableListView 必须进行一次...
  • songmingzhan
  • songmingzhan
  • 2017年01月12日 11:31
  • 742

Android--ExpandableListView的item点击监听事件

本人小白一只,之前在用到ExpandableListView的时候,需要对item的点击事件做一个监听操作,然后我就在MainActivity中重写了setOnItemClickListener的方法...
  • Wuli_ENZO
  • Wuli_ENZO
  • 2017年12月19日 20:08
  • 142

去掉或自定义ExpandableListView的箭头图标

用到ExpandableListView时有个箭头图标系统自带的在你自定义布局也不能去掉只要设置一个属性即可,如下:   settingLists.setGroupIndicator(null)...
  • fei0724
  • fei0724
  • 2015年01月05日 13:15
  • 2973

改变ExpandableListView的indicator图标

1)定义xml文件先,命名为expand_list_indicator.xml http://schemas.android.com/apk/res/android">     2)在...
  • nosxcy
  • nosxcy
  • 2011年08月22日 22:06
  • 6916

【Android】ExpandableListView 默认展开和不可点击

以下代码可以实现ExpandableListView进入以后默认展开。 即 不需要点击右侧箭头符号即可看到所有列表已经展开。 [plain] view plain co...
  • zchlww
  • zchlww
  • 2016年02月22日 10:24
  • 777

Android ExpandableListView的使用技巧

ExpandableListView是listview的官方扩展组件, 垂直方向上item分为两层, group item和child item,点击group item可以展开和折叠child it...
  • lovefish2
  • lovefish2
  • 2015年05月22日 20:10
  • 2205

ExpandablelistView+swipeLayout 滑动删除

使用AndroidSwipeLayout可以实现android列表滑动删除的效果,github上地址是AndroidSwipeLayout 因项目需要,在ExpandablelistView中加...
  • jifashihan
  • jifashihan
  • 2016年07月12日 14:41
  • 2574

Android_支持下拉刷新和加载更多的ExpandableListView

预览:支持下拉刷新和加载更多的ExpandableListView模拟器有点卡,滑动的时候鼠标不方便怎么用: XML中声明 ...
  • givemeacondom
  • givemeacondom
  • 2016年11月28日 19:36
  • 2203

ExpandableListView 去掉默认的箭头

今天项目里,添加了一个功能 工厂和设备的2级listview,当时的想法就是用ExpandableListview 然后在添加布局后,发现一级菜单的向下箭头还在,没有去除吊,后来查了一下资料只要在代码...
  • sz754155526
  • sz754155526
  • 2016年12月22日 11:45
  • 1106

【Android UI设计】ExpandableListView详解

一、前言今天我们来实现一下如下这个效果,类似于QQ好友分组的UI效果,废话不多说,先上效果图: ExpandableListView是一个用来显示二级节点的listview。默认展示的是第一级的分组,...
  • wangkeke1860
  • wangkeke1860
  • 2015年06月13日 00:41
  • 20325
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android expandablelistview
举报原因:
原因补充:

(最多只允许输入30个字)