Android中ExpandableListView的用法实例
Android中ExpandableListView的用法实例
发布时间:2016-12-28 来源:查字典编辑
摘要:本文实例讲述了Android中ExpandableListView的用法,ExpandableListView是android中可以实现下拉...

本文实例讲述了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程序设计有所帮助。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类