html5中文学习网

您的位置: 首页 > android » 正文

Android中ExpandableListView的用法实例_Android

[ ] 已经帮助:人解决问题

本文实例讲述了Android中ExpandableListView的用法,ExpandableListView是android中可以实现下拉list的一个控件,具体的实现方法如下:Eg8HTML5中文学习网 - HTML5先行者学习网

首先:在layout的xml文件中定义一个ExpandableListViewEg8HTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
<LinearLayout   Eg8HTML5中文学习网 - HTML5先行者学习网
    android:id="@+id/linearLayout"  Eg8HTML5中文学习网 - HTML5先行者学习网
    android:layout_width="fill_parent"   Eg8HTML5中文学习网 - HTML5先行者学习网
    android:layout_height="fill_parent"  Eg8HTML5中文学习网 - HTML5先行者学习网
    androidrientation="vertical"  Eg8HTML5中文学习网 - HTML5先行者学习网
    >  Eg8HTML5中文学习网 - HTML5先行者学习网
      Eg8HTML5中文学习网 - HTML5先行者学习网
    <ExpandableListView  Eg8HTML5中文学习网 - HTML5先行者学习网
    android:id="@+id/expandableListView"  Eg8HTML5中文学习网 - HTML5先行者学习网
    android:layout_width="fill_parent"  Eg8HTML5中文学习网 - HTML5先行者学习网
    android:layout_height="wrap_content"  Eg8HTML5中文学习网 - HTML5先行者学习网
        />  Eg8HTML5中文学习网 - HTML5先行者学习网
</LinearLayout>
Eg8HTML5中文学习网 - HTML5先行者学习网

定义两个List,用来存放控件中Group/Child中的StringEg8HTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
private List<String> groupArray;  Eg8HTML5中文学习网 - HTML5先行者学习网
private List<List<String>> childArray;
Eg8HTML5中文学习网 - HTML5先行者学习网

对这两个List进行初始化,并插入一些数据Eg8HTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
groupArray = new ArrayList<String>();  Eg8HTML5中文学习网 - HTML5先行者学习网
childArray = new ArrayList<List<String>>();  Eg8HTML5中文学习网 - HTML5先行者学习网
  Eg8HTML5中文学习网 - HTML5先行者学习网
groupArray.add("第一行");  Eg8HTML5中文学习网 - HTML5先行者学习网
groupArray.add("第二行");  Eg8HTML5中文学习网 - HTML5先行者学习网
  Eg8HTML5中文学习网 - HTML5先行者学习网
List<String> tempArray = new ArrayList<String>();  Eg8HTML5中文学习网 - HTML5先行者学习网
tempArray.add("第一条");  Eg8HTML5中文学习网 - HTML5先行者学习网
tempArray.add("第二条");  Eg8HTML5中文学习网 - HTML5先行者学习网
tempArray.add("第三条");  Eg8HTML5中文学习网 - HTML5先行者学习网
  Eg8HTML5中文学习网 - HTML5先行者学习网
for(int index = 0; index <groupArray.size(); ++index)  Eg8HTML5中文学习网 - HTML5先行者学习网
Eg8HTML5中文学习网 - HTML5先行者学习网
    childArray.add(tempArray);  Eg8HTML5中文学习网 - HTML5先行者学习网
}
Eg8HTML5中文学习网 - HTML5先行者学习网

定义ExpandableListView的AdapterEg8HTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
//ExpandableListView的Adapter  Eg8HTML5中文学习网 - HTML5先行者学习网
public class ExpandableAdapter extends BaseExpandableListAdapter  Eg8HTML5中文学习网 - HTML5先行者学习网
Eg8HTML5中文学习网 - HTML5先行者学习网
    Activity activity;  Eg8HTML5中文学习网 - HTML5先行者学习网
      Eg8HTML5中文学习网 - HTML5先行者学习网
    public ExpandableAdapter(Activity a)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        activity = a;  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    public Object getChild(int groupPosition, int childPosition)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        return childArray.get(groupPosition).get(childPosition);  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    public long getChildId(int groupPosition, int childPosition)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        return childPosition;  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    public int getChildrenCount(int groupPosition)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        return childArray.get(groupPosition).size();  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    public View getChildView(int groupPosition, int childPosition,  Eg8HTML5中文学习网 - HTML5先行者学习网
            boolean isLastChild, View convertView, ViewGroup parent)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        String string = childArray.get(groupPosition).get(childPosition);  Eg8HTML5中文学习网 - HTML5先行者学习网
        return getGenericView(string);  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    // group method stub  Eg8HTML5中文学习网 - HTML5先行者学习网
    public Object getGroup(int groupPosition)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        return groupArray.get(groupPosition);  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    public int getGroupCount()  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        return groupArray.size();  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    public long getGroupId(int groupPosition)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        return groupPosition;  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    public View getGroupView(int groupPosition, boolean isExpanded,  Eg8HTML5中文学习网 - HTML5先行者学习网
            View convertView, ViewGroup parent)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        String string = groupArray.get(groupPosition);  Eg8HTML5中文学习网 - HTML5先行者学习网
        return getGenericView(string);  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    // View stub to create Group/Children 's View  Eg8HTML5中文学习网 - HTML5先行者学习网
    public TextView getGenericView(String string)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        // Layout parameters for the ExpandableListView  Eg8HTML5中文学习网 - HTML5先行者学习网
        AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(  Eg8HTML5中文学习网 - HTML5先行者学习网
                ViewGroup.LayoutParams.FILL_PARENT, 64);  Eg8HTML5中文学习网 - HTML5先行者学习网
        TextView text = new TextView(activity);  Eg8HTML5中文学习网 - HTML5先行者学习网
        text.setLayoutParams(layoutParams);  Eg8HTML5中文学习网 - HTML5先行者学习网
        // Center the text vertically  Eg8HTML5中文学习网 - HTML5先行者学习网
        text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);  Eg8HTML5中文学习网 - HTML5先行者学习网
        // Set the text starting position  Eg8HTML5中文学习网 - HTML5先行者学习网
        text.setPadding(36, 0, 0, 0);  Eg8HTML5中文学习网 - HTML5先行者学习网
        text.setText(string);  Eg8HTML5中文学习网 - HTML5先行者学习网
        return text;  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    public boolean hasStableIds()  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        return false;  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
    public boolean isChildSelectable(int groupPosition, int childPosition)  Eg8HTML5中文学习网 - HTML5先行者学习网
    {  Eg8HTML5中文学习网 - HTML5先行者学习网
        return true;  Eg8HTML5中文学习网 - HTML5先行者学习网
    }  Eg8HTML5中文学习网 - HTML5先行者学习网
}
Eg8HTML5中文学习网 - HTML5先行者学习网

最后,给定义好的ExpandableListView添加上AdapterEg8HTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ExpandableListView expandableListView = (ExpandableListView)findViewById(R.id.expandableListView);  Eg8HTML5中文学习网 - HTML5先行者学习网
expandableListView.setAdapter(new ExpandableAdapter(Main.this));
Eg8HTML5中文学习网 - HTML5先行者学习网

希望本文所述对大家的Android程序设计有所帮助。Eg8HTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助