天天看點

ExpandableListActivity的學習和使用

package com.ljz.launchertest;

import android.app.ExpandableListActivity;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AbsListView;

import android.widget.BaseExpandableListAdapter;

import android.widget.ExpandableListAdapter;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.TextView;

public class Activity1 extends ExpandableListActivity {

//父元素顯示的名字

String [] armType = new String[]{"1","2","3"};

//所有子元素的資訊

String [][] arms = new String[][]

{

{"a1","a2","a3","a4"}, //第一個父元素的資訊

{"b1","b2","b3"}, //依次類推。。。。

{"c1","c2","c3","c4"} //依次類推。。。。

};

//父元素顯示的圖檔

int logo[] = new int[]

{

R.drawable.dish_bad01,

R.drawable.dish_bad11,

R.drawable.dish_bad21

};

@Override

    public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//建立ExpandableListAdapter的資料擴充卡

ExpandableListAdapter adapter = new BaseExpandableListAdapter() {

//傳回是否子元素可以被選擇

@Override

public boolean isChildSelectable(int groupPosition, int childPosition) {

return true;

}

//傳回是否存在可用的子元素

@Override

public boolean hasStableIds() {

return true;

}

//傳回父元素的界面

@Override

public View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {

LinearLayout layout = new LinearLayout(Activity1.this);

layout.setOrientation(0);

//添加圖檔

ImageView imageView = new ImageView(Activity1.this);

imageView.setBackgroundResource(logo[groupPosition]);

layout.addView(imageView);

//添加文字說明

TextView textView = new TextView(Activity1.this);

textView.setText( getGroup(groupPosition).toString() );

layout.addView(textView);

return layout;

}

//傳回父元素的id

@Override

public long getGroupId(int groupPosition) {

return groupPosition;

}

//傳回所有父元素的個數

@Override

public int getGroupCount() {

return armType.length;

}

//傳回父元素的資訊

@Override

public Object getGroup(int groupPosition) {

return armType[groupPosition];

}

//傳回父元素下子元素的個數

@Override

public int getChildrenCount(int groupPosition) {

return arms[groupPosition].length;

}

//傳回子元素的界面

@Override

public View getChildView(int groupPosition, int childPosition,boolean isLastChild, View convertView, ViewGroup parent) {

TextView textView = new TextView(Activity1.this);

textView.setText( getChild(groupPosition, childPosition).toString() );

AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,64 );

textView.setLayoutParams( lp );

textView.setTextSize(20.0f);

return textView;

}

//傳回子元素的id

@Override

public long getChildId(int groupPosition, int childPosition) {

return childPosition;

}

//傳回子元素的資訊

@Override

public Object getChild(int groupPosition, int childPosition) {

return arms[groupPosition][childPosition];

}

};

//加載資料擴充卡

setListAdapter(adapter);

    }

}