当前位置: 首页 > 编程笔记 >

Android中ExpandableListView的用法实例

伍皓
2023-03-14
本文向大家介绍Android中ExpandableListView的用法实例,包括了Android中ExpandableListView的用法实例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Android中ExpandableListView的用法,ExpandableListView是android中可以实现下拉list的一个控件,具体的实现方法如下:

首先:在layout的xml文件中定义一个ExpandableListView

<LinearLayout   

    android:id="@+id/linearLayout"  

    android:layout_width="fill_parent"   

    android:layout_height="fill_parent"  

    androidrientation="vertical"  

    >  

      

    <ExpandableListView  

    android:id="@+id/expandableListView"  

    android:layout_width="fill_parent"  

    android:layout_height="wrap_content"  

        />  

</LinearLayout>

定义两个List,用来存放控件中Group/Child中的String

private List<String> groupArray;  

private List<List<String>> childArray;

对这两个List进行初始化,并插入一些数据

groupArray = new ArrayList<String>();  

childArray = new ArrayList<List<String>>();  

  

groupArray.add("第一行");  

groupArray.add("第二行");  

  

List<String> tempArray = new ArrayList<String>();  

tempArray.add("第一条");  

tempArray.add("第二条");  

tempArray.add("第三条");  

  

for(int index = 0; index <groupArray.size(); ++index)  

{  

    childArray.add(tempArray);  

}

定义ExpandableListView的Adapter

//ExpandableListView的Adapter  

public class ExpandableAdapter extends BaseExpandableListAdapter  

{  

    Activity activity;  

      

    public ExpandableAdapter(Activity a)  

    {  

        activity = a;  

    }  

    public Object getChild(int groupPosition, int childPosition)  

    {  

        return childArray.get(groupPosition).get(childPosition);  

    }  

    public long getChildId(int groupPosition, int childPosition)  

    {  

        return childPosition;  

    }  

    public int getChildrenCount(int groupPosition)  

    {  

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

    }  

    public View getChildView(int groupPosition, int childPosition,  

            boolean isLastChild, View convertView, ViewGroup parent)  

    {  

        String string = childArray.get(groupPosition).get(childPosition);  

        return getGenericView(string);  

    }  

    // group method stub  

    public Object getGroup(int groupPosition)  

    {  

        return groupArray.get(groupPosition);  

    }  

    public int getGroupCount()  

    {  

        return groupArray.size();  

    }  

    public long getGroupId(int groupPosition)  

    {  

        return groupPosition;  

    }  

    public View getGroupView(int groupPosition, boolean isExpanded,  

            View convertView, ViewGroup parent)  

    {  

        String string = groupArray.get(groupPosition);  

        return getGenericView(string);  

    }  

    // View stub to create Group/Children 's View  

    public TextView getGenericView(String string)  

    {  

        // Layout parameters for the ExpandableListView  

        AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(  

                ViewGroup.LayoutParams.FILL_PARENT, 64);  

        TextView text = new TextView(activity);  

        text.setLayoutParams(layoutParams);  

        // Center the text vertically  

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

        // Set the text starting position  

        text.setPadding(36, 0, 0, 0);  

        text.setText(string);  

        return text;  

    }  

    public boolean hasStableIds()  

    {  

        return false;  

    }  

    public boolean isChildSelectable(int groupPosition, int childPosition)  

    {  

        return true;  

    }  

}

最后,给定义好的ExpandableListView添加上Adapter

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

expandableListView.setAdapter(new ExpandableAdapter(Main.this));

希望本文所述对大家的Android程序设计有所帮助。

 类似资料:
  • 本文向大家介绍Android 中使用ExpandableListView 实现分组的实例,包括了Android 中使用ExpandableListView 实现分组的实例的使用技巧和注意事项,需要的朋友参考一下  Android 中使用ExpandableListView 实现分组 一个视图显示垂直滚动两级列表中的条目。这不同于列表视图,允许两个层次,类似于QQ的好友分组。要实现这个效果的整体思路

  • 本文向大家介绍Android改变ExpandableListView的indicator图标实现方法,包括了Android改变ExpandableListView的indicator图标实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android改变ExpandableListView的indicator图标实现方法。分享给大家供大家参考,具体如下: 1)定义xml文件先,命名为

  • 本文向大家介绍Android中ExpandableListView使用示例详解,包括了Android中ExpandableListView使用示例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了ExpandableListView使用示例,供大家参考,具体内容如下 MainActivity: MainActivity.xml: ExpandableListViewAdpter:

  • 本文向大家介绍Android ExpandableListView展开列表控件使用实例,包括了Android ExpandableListView展开列表控件使用实例的使用技巧和注意事项,需要的朋友参考一下 你是否觉得手机QQ上的好友列表那个控件非常棒? 不是..... 那也没关系,学多一点知识对自己也有益无害。 那么我们就开始吧。 展开型列表控件, 原名ExpandableListView 是普

  • 本文向大家介绍Android中使用Expandablelistview实现微信通讯录界面,包括了Android中使用Expandablelistview实现微信通讯录界面的使用技巧和注意事项,需要的朋友参考一下 之前的博文《Android 中使用ExpandableListView 实现分组的实例》我简单介绍了使用ExpandableListView实现简单的好友分组功能,今天我们针对之前的所做的

  • 本文向大家介绍分享Android中ExpandableListView控件使用教程,包括了分享Android中ExpandableListView控件使用教程的使用技巧和注意事项,需要的朋友参考一下 本文采用一个Demo来展示Android中ExpandableListView控件的使用,如如何在组/子ListView中绑定数据源。直接上代码如下: 程序结构图: layout目录下的 main.x