android 横向多级列表,android好友多级列表显示ExpandableListView

本文展示了一个Android应用程序,使用ExpandableListView控件创建一个可展开的列表,包含水果、蔬菜、卫生间和垃圾堆四个类别,每个类别下有对应的子项。通过自定义BaseExpandableListAdapter实现数据绑定,并设置布局和样式。
摘要由CSDN通过智能技术生成

package

com.ylf;

import

java.util.ArrayList;

import

java.util.List;

import

android.app.Activity;

import

android.app.ExpandableListActivity;

import

android.os.Bundle;

import

android.view.LayoutInflater;

import

android.view.View;

import

android.view.ViewGroup;

import

android.widget.BaseExpandableListAdapter;

import

android.widget.ExpandableListView;

import

android.widget.LinearLayout;

import

android.widget.TextView;

public

class MainActivity extends Activity {

List parents =

null;

List children =

null;

ExpandableListView listView = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

listView =

(ExpandableListView)findViewById(R.id.expand);

parents = new

ArrayList();

children

= new ArrayList();

List children1 =new

ArrayList();

List children2 =new

ArrayList();

List children3 =new

ArrayList();

List children4 =new

ArrayList();

parents.add("水果");

parents.add("蔬菜");

parents.add("卫生间");

parents.add("垃圾堆");

children1.add("香蕉");

children1.add("苹果");

children2.add("空心菜");

children2.add("西红柿");

children3.add("马桶");

children3.add("水池");

children4.add("屎虫");

children4.add("苍蝇");

children.add(children1);

children.add(children2);

children.add(children3);

children.add(children4);

listView.setAdapter(new MyExpandableListAdapter());

listView.setGroupIndicator(null);

}

class MyExpandableListAdapter extends

BaseExpandableListAdapter{

@Override

public Object getChild(int arg0, int arg1) {

return children.get(arg0).get(arg1);

}

@Override

public long getChildId(int arg0, int arg1) {

return arg0*parents.size()+arg1;

}

@Override

public View getChildView(int parentCount, int childCount, boolean

arg2, View arg3,

ViewGroup arg4) {

LayoutInflater inflater =

LayoutInflater.from(MainActivity.this);

View view = inflater.inflate(R.layout.child, null);

LinearLayout ll =

(LinearLayout)view.findViewById(R.id.child);

TextView tv = new TextView(MainActivity.this);

tv.setPadding(60, 5, 5, 5);

tv.setText((String)getChild(parentCount, childCount));

ll.addView(tv);

ll.setPadding(5, 5, 5, 5);

return view;

}

@Override

public int getChildrenCount(int groupPosition) {

return children.get(groupPosition).size();

}

@Override

public Object getGroup(int groupPosition) {

return parents.get(groupPosition);

}

@Override

public int getGroupCount() {

return parents.size();

}

@Override

public long getGroupId(int groupPosition) {

return groupPosition;

}

@Override

public View getGroupView(int groupPosition, boolean

isExpanded,

View convertView, ViewGroup parent) {

LayoutInflater inflater =

LayoutInflater.from(MainActivity.this);

View view = inflater.inflate(R.layout.parent, null);

TextView tv = (TextView)view.findViewById(R.id.parent);

tv.setPadding(50, 5, 5, 5);

tv.setText((String)getGroup(groupPosition));

return view;

}

@Override

public boolean hasStableIds() {

return false;

}

@Override

public boolean isChildSelectable(int groupPosition, int

childPosition) {

return false;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值