2.4.10 可展开的列表组件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

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

</LinearLayout>
package com.moon.hello2;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.R.anim;
import android.R.integer;
import android.app.Activity;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RatingBar;
import android.widget.SimpleAdapter;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.SeekBar;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.activity_main);
        ExpandableListView listView = (ExpandableListView)findViewById(R.id.expandableListView1);
        ExpandableListAdapter adapter = new ExpandableListAdapter() {
            private String[] armTypeStrings = new String[]{"神族","人族","虫族"};
            private String[][] armStrings = new String[][]{{"狂战士","龙骑士","黑暗圣堂","电兵"},{"小狗","刺蛇","飞龙","自爆飞机"},{"机枪兵","护士MM","幽灵"}};
            @Override
            public void unregisterDataSetObserver(DataSetObserver arg0) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void registerDataSetObserver(DataSetObserver arg0) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void onGroupExpanded(int arg0) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void onGroupCollapsed(int arg0) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public boolean isEmpty() {
                // TODO Auto-generated method stub
                return false;
            }
            
            @Override
            public boolean isChildSelectable(int arg0, int arg1) {
                // TODO Auto-generated method stub
                return true;
            }
            
            @Override
            public boolean hasStableIds() {
                // TODO Auto-generated method stub
                return true;
            }
            
            @Override
            public View getGroupView(int groupPosition, boolean arg1, View arg2, ViewGroup arg3) {
                // TODO Auto-generated method stub
                LinearLayout linearLayout = new LinearLayout(MainActivity.this);
                linearLayout.setOrientation(LinearLayout.HORIZONTAL);
                TextView textView = this.getTextView();
                textView.setText(this.getGroup(groupPosition).toString());
                linearLayout.addView(textView);
                return linearLayout;
            }
            
            @Override
            public long getGroupId(int groupPosition) {
                // TODO Auto-generated method stub
                return groupPosition;
            }
            
            @Override
            public int getGroupCount() {
                // TODO Auto-generated method stub
                return this.armTypeStrings.length;
            }
            
            @Override
            public Object getGroup(int groupPosition) {
                // TODO Auto-generated method stub
                return this.armTypeStrings[groupPosition];
            }
            
            @Override
            public long getCombinedGroupId(long arg0) {
                // TODO Auto-generated method stub
                return 0;
            }
            
            @Override
            public long getCombinedChildId(long arg0, long arg1) {
                // TODO Auto-generated method stub
                return 0;
            }
            
            @Override
            public int getChildrenCount(int groupPosition) {
                // TODO Auto-generated method stub
                return this.armStrings[groupPosition].length;
            }
            
            @Override
            public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
                    ViewGroup parent) {
                TextView textView = this.getTextView();
                textView.setText(this.getChild(groupPosition, childPosition).toString());
                return textView;
            }
            
            @Override
            public long getChildId(int arg0, int arg1) {
                // TODO Auto-generated method stub
                return 0;
            }
            
            @Override
            public Object getChild(int groupPostion, int childPosition) {
                // TODO Auto-generated method stub
                return this.armStrings[groupPostion][childPosition];
            }
            
            @Override
            public boolean areAllItemsEnabled() {
                // TODO Auto-generated method stub
                return false;
            }
            
            private TextView getTextView(){
                TextView textView = new TextView(MainActivity.this);
                AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 64);
                textView.setLayoutParams(layoutParams);
                textView.setGravity(Gravity.CENTER_VERTICAL);
                textView.setPadding(36, 0, 0, 0);
                textView.setTextSize(20);
                return textView;
            }
        };
        listView.setAdapter(adapter);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

getChildView 返回子列表中的单个view

getGroupView 返回单个group的view(不展开时候的那个)

childCount 返回某个group下边的子元素数目

groupCount 返回所有的group数目

posted @ 2015-05-19 17:00  魔芋红茶  阅读(124)  评论(0编辑  收藏  举报