ExpandableListView二级列表

XMl

 

<RelativeLayout 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"
tools:context=".MainActivity" >

<ExpandableListView
android:id="@+id/elv"
android:layout_width="match_parent"
android:layout_height="match_parent"

></ExpandableListView>

</RelativeLayout>

   

MainActivity

 

package com.bawei.d2;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

private String[][] secondNames;
private String[] names;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ExpandableListView elv=(ExpandableListView) findViewById(R.id.elv);

names = new String[]{" 第一组"," 第二组"," 第三组"," 第四组"};
secondNames = new String[][]{
{"a","b","c"},
{"d","e","f"},
{"q","w","e","r"},
{"s","d"}
};

elv.setAdapter(new BaseExpandableListAdapter() {

@Override
//控制二级列表条目是否可以点击
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}

@Override

public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}

@Override
//返回一级列表的条目布局
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
View view=View.inflate(MainActivity.this,android.R.layout.simple_list_item_1,null);
TextView textView= (TextView) view.findViewById(android.R.id.text1);
textView.setText(names[groupPosition]);
return view;
}

@Override
//获取一级列表给定的Id
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}

@Override
//第一列表的个数
public int getGroupCount() {
// TODO Auto-generated method stub
return names.length;
}

@Override
//获取给定的一级列表的数据
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}

@Override
//第二级列表的个数
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return secondNames[groupPosition].length;
}

@Override
//返回二级列表的条目布局

public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
View view= View.inflate(MainActivity.this,android.R.layout.simple_list_item_1, null);
TextView textView=(TextView) view.findViewById(android.R.id.text1);
textView.setText(secondNames[groupPosition][childPosition]);
return view;
}

@Override
//获取二级列表给定的ID
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}

@Override
//获取给定的二级列表的数据
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
});
//二级列表监听
elv.setOnChildClickListener(new OnChildClickListener() {

@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Toast.makeText(MainActivity.this, "你点击了第"+(groupPosition+1)+"组的第"+(childPosition+1)+"项", 0).show();
return false;
}
});


}


}

   
posted @ 2016-04-12 20:58  只剩下我自己了  阅读(238)  评论(0编辑  收藏  举报