可扩展ListView

来源:互联网 发布:美工电脑是什么意思 编辑:程序博客网 时间:2024/05/20 02:27

xml配制

<ExpandableListView     android:id="@+id/elv_common_num"    android:layout_width="match_parent"    android:layout_height="wrap_content"    ></ExpandableListView>

获取数据的方法

public static List<Group> getCommonNum(Context context) {List<Group> list = new ArrayList<CommonNumDao.Group>();String path = context.getFilesDir() + "/" +  "commonnum.db";SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);Cursor cursor = db.query("classlist", new String[]{"name", "idx"}, null, null, null, null, null);while(cursor.moveToNext()) {Group group = new Group();group.commonName = cursor.getString(0);group.idx = cursor.getString(1);group.childList = getChildNum(context, group.idx);list.add(group);}cursor.close();db.close();return list;}private static List<Child> getChildNum(Context context, String idx) {// TODO Auto-generated method stubList<Child> childList = new ArrayList<CommonNumDao.Child>();String path = context.getFilesDir() + "/" +"commonnum.db";SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);Cursor cursor = db.query("table" + idx, new String[]{"_id", "number", "name"}, null, null, null, null, null);while(cursor.moveToNext()) {Child child = new Child();child.id = cursor.getString(0);child.number = cursor.getString(1);child.name = cursor.getString(2);childList.add(child);}return childList;}public static class Group {public String commonName;public String idx;public List<Child> childList;}public static class Child {public String number;public String name;public String id;}
获取数据

new Thread(){public void run() {mGroupList = CommonNumDao.getCommonNum(getApplicationContext());mHandler.sendEmptyMessage(0);};}.start();
数据适配器的设置

class MyAdapter extends BaseExpandableListAdapter {@Overridepublic int getGroupCount() {return mGroupList.size();}@Overridepublic int getChildrenCount(int groupPosition) {return mGroupList.get(groupPosition).childList.size();}@Overridepublic Group getGroup(int groupPosition) {return mGroupList.get(groupPosition);}@Overridepublic Child getChild(int groupPosition, int childPosition) {return mGroupList.get(groupPosition).childList.get(childPosition);}@Overridepublic long getGroupId(int groupPosition) {return groupPosition;}@Overridepublic long getChildId(int groupPosition, int childPosition) {return childPosition;}@Overridepublic boolean hasStableIds() {// 是否将mGroupList的id作为数据适配器的id,不做修改return false;}@Overridepublic View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {GroupViewHolder holder = null;TextView textView = null;if(convertView == null) {holder = new GroupViewHolder();textView = new TextView(getApplicationContext());textView.setText("            " + mGroupList.get(groupPosition).commonName);textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 25);textView.setTextColor(Color.RED);convertView = textView;holder.textView = textView;convertView.setTag(holder);} else {holder = (GroupViewHolder) convertView.getTag();}holder.textView = textView;return convertView;}@Overridepublic View getChildView(int groupPosition, int childPosition,boolean isLastChild, View convertView, ViewGroup parent) {// TODO Auto-generated method stubChildViewHolder holder = null;if(convertView == null) {holder = new ChildViewHolder();convertView = View.inflate(getApplicationContext(), R.layout.elv_common_child, null);holder.tv_common_num_name = (TextView) convertView.findViewById(R.id.tv_common_num_name);holder.tv_common_num_number = (TextView) convertView.findViewById(R.id.tv_common_num_number);convertView.setTag(holder);} else {holder = (ChildViewHolder) convertView.getTag();}holder.tv_common_num_name.setText(mGroupList.get(groupPosition).childList.get(childPosition).name);holder.tv_common_num_number.setText(mGroupList.get(groupPosition).childList.get(childPosition).number);return convertView;}@Overridepublic boolean isChildSelectable(int groupPosition, int childPosition) {// 是否item可被选中return true;}}static class ChildViewHolder {private TextView tv_common_num_name;private TextView tv_common_num_number;}static class GroupViewHolder {private TextView textView;}




原创粉丝点击