android expandablelistview横向,ExpandableListView的使用多级列表

多级列表ExpandableListView

扩展列表能够显示一个指示在每项显示项的当前状态(状态通常是一个扩展的组,组的孩子,或倒塌,最后一个孩子)。使用setchildindicator(drawable)或setgroupindicator(drawable)(或相应的XML属性)来设置这些指标,一个默认的风格多级列表提供指标,将示给意见多级列表。布局android.r.layout.simple_expandable_list_item_1和android.r.layout.simple_expandable_list_item_2(应用simplecursortreeadapter)包含位置信息的首选指标。

1 activity_main.xml

2

3     android:layout_width="match_parent"

4     android:layout_height="match_parent"

5     android:background="#ffffff"

6     android:orientation="vertical">

7    

8         android:id="@+id/expandableListView"

9         android:layout_width="match_parent"

10         android:layout_height="match_parent"

11         android:divider="#E4E4E4"

12         android:dividerHeight="5dp">

13    

14

15 child_item.xml

16 <?xmlversion ="1.0"encoding="utf-8"?>

17

18     android:layout_width="match_parent"

19     android:layout_height="match_parent"

20     android:orientation="vertical">

21    

22         android:id="@+id/textViews"

23         android:layout_width="wrap_content"

24         android:layout_height="wrap_content"/>

25    

26         android:layout_width="match_parent"

27         android:layout_height="0.5dp"

28         android:background="#ff0000"/>

29

30 groud_item.xml

31

32     xmlns:tools="http://schemas.android.com/tools"

33     android:layout_width="match_parent"

34     android:layout_height="match_parent"

35    android:gravity="center_vertical"

36     android:orientation="horizontal">

37    

38         android:id="@+id/imageView1"

39         android:layout_width="65dp"

40         android:layout_height="55dp"

41         android:layout_marginLeft="10dp"

42         android:scaleType="fitXY"

43         android:class="lazyload" src="https://img-blog.csdnimg.cn/2022010710075516879.png" data-original="@drawable/l1"/>

44    

45         android:id="@+id/textView"

46         android:layout_width="wrap_content"

47         android:layout_height="wrap_content"

48         android:layout_marginLeft="10dp"

49         android:text="斯蒂芬"/>

50

1 public class MainActivity extends Activity {

2     private ExpandableListView listView;

3     private List group;

4     private List> child;

5     private MyAdapter adapter;

6     @Override

7     protected void onCreate(Bundle savedInstanceState) {

8         super.onCreate(savedInstanceState);

9         setContentView(R.layout.activity_main);

10

11         listView = (ExpandableListView) findViewById(R.id.expandableListView);

12         /**

13          * 初始化数据

14          */

15         initData();

16         adapter = new MyAdapter(this,group,child);

17         listView.setAdapter(adapter);

18

19     }

20

21

22

23

24     private void initData() {

25         group = new ArrayList();

26         child = new ArrayList>();

27         addInfo("笑傲江湖",new String[]{"东方不败","风清扬","令狐冲","岳不群"});

28         addInfo("天龙八部", new String[]{"乔峰","虚竹","段誉"});

29         addInfo("九阴真经", new String[]{"中神通","东邪","西毒","南帝","北丐"});

30     }

31

32     /**

33      * 添加数据信息

34      * @param g

35      * @param c

36      */

37     private void addInfo(String g,String[] c) {

38         group.add(g);

39         List list = new ArrayList();

40         for (int i = 0; i < c.length; i++) {

41             list.add(c[i]);

42         }

43         child.add(list);

44     }

45

46 }

1 /**

2  * expandableListView的用法同ListView

3  *

4  */

5 public class MyAdapter extends BaseExpandableListAdapter {

6     private Context context;

7     private List group;

8     private List> child;

9     private int[] img={R.drawable.l2,R.drawable.l3,R.drawable.l1};

10     public MyAdapter(Context context, List group,

11             List> child) {

12         this.context = context;

13         this.group = group;

14         this.child = child;

15     }

16

17     @Override

18     public int getGroupCount() {

19         return group.size();

20     }

21

22     @Override

23     public int getChildrenCount(int groupPosition) {

24         return child.get(groupPosition).size();

25     }

26

27     @Override

28     public Object getGroup(int groupPosition) {

29         return group.get(groupPosition);

30     }

31

32     @Override

33     public Object getChild(int groupPosition, int childPosition) {

34         return child.get(childPosition).get(childPosition);

35     }

36

37     @Override

38     public long getGroupId(int groupPosition) {

39         return groupPosition;

40     }

41

42     @Override

43     public long getChildId(int groupPosition, int childPosition) {

44         return childPosition;

45     }

46

47     @Override

48     public boolean hasStableIds() {

49         return false;

50     }

51

52     /**

53     *

54     * 获取显示指定组的视图对象

55     *

56     * @param groupPosition 组位置

57     * @param isExpanded 该组是展开状态还是伸缩状态

58     * @param convertView 重用已有的视图对象

59     * @param parent 返回的视图对象始终依附于的视图组

60     * @return

61     * @see android.widget.ExpandableListAdapter#getGroupView(int, boolean, android.view.View,

62     *      android.view.ViewGroup)

63     */

64     @Override

65     public View getGroupView(int groupPosition, boolean isExpanded,

66             View convertView, ViewGroup parent) {

67         ViewHolder holder;

68         if (convertView == null) {

69             convertView = LayoutInflater.from(context).inflate(

70                     R.layout.groud_item, null);

71             holder = new ViewHolder();

72             holder.textView = (TextView) convertView

73                     .findViewById(R.id.textView);

74             holder.mImageView=(ImageView) convertView.findViewById(R.id.imageView1);

75             convertView.setTag(holder);

76         } else {

77             holder = (ViewHolder) convertView.getTag();

78         }

79         holder.textView.setText(group.get(groupPosition));

80         holder.textView.setTextSize(25);

81         holder.textView.setPadding(36, 10, 0, 10);

82         holder.mImageView.setImageResource(img[groupPosition]);

83         return convertView;

84

85     }

86

87     /**

88     *

89     * 获取一个视图对象,显示指定组中的指定子元素数据。

90     *

91     * @param groupPosition 组位置

92     * @param childPosition 子元素位置

93     * @param isLastChild 子元素是否处于组中的最后一个

94     * @param convertView 重用已有的视图(View)对象

95     * @param parent 返回的视图(View)对象始终依附于的视图组

96     * @return

97     * @see android.widget.ExpandableListAdapter#getChildView(int, int, boolean, android.view.View,

98     *      android.view.ViewGroup)

99     */

100     @Override

101     public View getChildView(int groupPosition, int childPosition,

102             boolean isLastChild, View convertView, ViewGroup parent) {

103         ViewHolder holder;

104         if (convertView == null) {

105             convertView = LayoutInflater.from(context).inflate(

106                     R.layout.child_item, null);

107             holder = new ViewHolder();

108             holder.textView = (TextView) convertView

109                     .findViewById(R.id.textViews);

110             convertView.setTag(holder);

111         } else {

112             holder = (ViewHolder) convertView.getTag();

113         }

114         holder.textView.setText(child.get(groupPosition).get(childPosition));

115         holder.textView.setTextSize(20);

116         holder.textView.setPadding(72, 10, 0, 10);

117         return convertView;

118     }

119

120

121

122      /**

123     *

124     * 是否选中指定位置上的子元素。

125     *

126     * @param groupPosition

127     * @param childPosition

128     * @return

129     * @see android.widget.ExpandableListAdapter#isChildSelectable(int, int)

130     */

131     @Override

132     public boolean isChildSelectable(int groupPosition, int childPosition) {

133         return false;

134     }

135

136

137     class ViewHolder {

138         ImageView mImageView;

139         TextView textView;

140     }

141 }

Eclipse下载:http://download.csdn.net/detail/dickyqie/9630549

AndroidStudio下载:https://github.com/DickyQie/ListViewExpandableListViewDelete/tree/expandablelistview

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值