Expandablelistview使用方法

来源:互联网 发布:中金数据 光环新网 编辑:程序博客网 时间:2024/06/05 03:25

废话不多说,我们直接进入主题了。

首先我们看看效果图:


下面我们就看看源码。首先是mian.xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    >    <ExpandableListView         android:id="@+id/expandableListView"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        ></ExpandableListView></LinearLayout>



代码很简单就不做解释了,接下来我们看看Activity.java代码

package com.itheima.expandablelistviewone;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.widget.AbsListView;import android.widget.BaseExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.TextView;public class MainActivity extends Activity {private List<String> groupArray;//组列表private List<List<String>> childArray;//子列表private ExpandableListView expandableListView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);expandableListView=(ExpandableListView)findViewById(R.id.expandableListView);groupArray=new ArrayList<String>();childArray=new ArrayList<List<String>>();initdate();expandableListView.setAdapter(new ExpandableListViewaAdapter(MainActivity.this));}class ExpandableListViewaAdapter extends BaseExpandableListAdapter{Activity activity;public ExpandableListViewaAdapter(Activity a){activity=a;}@Overridepublic int getGroupCount() {// TODO 自动生成的方法存根return groupArray.size();}@Overridepublic int getChildrenCount(int groupPosition) {// TODO 自动生成的方法存根return childArray.get(groupPosition).size();}@Overridepublic Object getGroup(int groupPosition) {// TODO 自动生成的方法存根return getGroup(groupPosition);}@Overridepublic Object getChild(int groupPosition, int childPosition) {return childArray.get(groupPosition).get(childPosition);}@Overridepublic long getGroupId(int groupPosition) {// TODO 自动生成的方法存根return groupPosition;}@Overridepublic long getChildId(int groupPosition, int childPosition) {// TODO 自动生成的方法存根return childPosition;}@Overridepublic boolean hasStableIds() {// TODO 自动生成的方法存根return false;}@Overridepublic View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {String string=groupArray.get(groupPosition);return getGenericView(string);}@Overridepublic View getChildView(int groupPosition, int childPosition,boolean isLastChild, View convertView, ViewGroup parent) {String string=childArray.get(groupPosition).get(childPosition);return getGenericView(string);}@Overridepublic boolean isChildSelectable(int groupPosition, int childPosition) {// TODO 自动生成的方法存根return true;}private TextView getGenericView(String string){AbsListView.LayoutParams layoutParams=new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);TextView textView=new TextView(activity);textView.setLayoutParams(layoutParams);textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);textView.setPadding(40, 0, 0, 0);textView.setText(string);return textView;}}private void initdate(){addInfo("语言", new String[]{"Oracle","Java","Linux","Jquery"});addInfo("男人的需求", new String[]{"金钱","事业","权力","女人","房子","车","球"});}private void addInfo(String group,String[] child){groupArray.add(group);List<String> childItem=new ArrayList<String>();for(int index=0;index<child.length;index++){childItem.add(child[index]);}childArray.add(childItem);}}
基本就是这样了,因为很简单就不做过多的解释,有什么不懂的,欢迎大家留言,咱们一起讨论。

0 0
原创粉丝点击