Android学习第十六天----expanablelistview应用

在listview中添加子listview组件

package cn.core.test;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.ExpandableListView.OnGroupCollapseListener;
import android.widget.ExpandableListView.OnGroupExpandListener;
import android.widget.Toast;

public class MainActivity extends Activity {

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

        mExpandableListView.setAdapter(new MyExpanableListView(this));

        mExpandableListView.setOnChildClickListener(new OnChildClickListener() {

            @Override
            public boolean onChildClick(ExpandableListView parent, View v,
                    int groupPosition, int childPosition, long id) {
                Toast.makeText(MainActivity.this, "dianjizizu",
                        Toast.LENGTH_SHORT).show();
                return false;
            }
        });

        mExpandableListView.setOnGroupClickListener(new OnGroupClickListener() {

            @Override
            public boolean onGroupClick(ExpandableListView parent, View v,
                    int groupPosition, long id) {
                Toast.makeText(MainActivity.this, "dian ji 组",
                        Toast.LENGTH_SHORT).show();
                return false;
            }
        });

        mExpandableListView
                .setOnGroupExpandListener(new OnGroupExpandListener() {

                    @Override
                    public void onGroupExpand(int groupPosition) {
                        Toast.makeText(MainActivity.this, "组打开",
                                Toast.LENGTH_SHORT).show();
                    }
                });

        mExpandableListView
                .setOnGroupCollapseListener(new OnGroupCollapseListener() {

                    @Override
                    public void onGroupCollapse(int groupPosition) {
                        Toast.makeText(MainActivity.this, "组关闭",
                                Toast.LENGTH_SHORT).show();

                    }
                });

    }

}

扩展的baseadapter

package cn.core.test;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;

public class MyExpanableListView extends BaseExpandableListAdapter {

    String[] groupInfo = { "黑龙江", "福建", "四川" };
    String[][] childInfo = { { "哈尔滨", "齐齐哈尔", "海拉尔" }, { "厦门", "福州", "泉州" },
            { "成都", "庐州" } };
    private Context context;

    public MyExpanableListView(Context context) {
        this.context = context;
    }

    @Override
    public int getGroupCount() {
        return groupInfo.length;
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return childInfo[groupPosition].length;
    }

    @Override
    public Object getGroup(int groupPosition) {
        return groupInfo[groupPosition];
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return childInfo[groupPosition][childPosition];
    }

    @Override
    public long getGroupId(int groupPosition) {
        return 0;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return 0;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {
        TextView textView = this.getTextView();
        textView.setText(groupInfo[groupPosition]);

        return textView;
    }

    /**
     * 设置TextView对象的属性 
     * 
     * @return textView对象
     */

    public TextView getTextView() {
        TextView textView = new TextView(context);
        textView.setPadding(60, 10, 0, 0);
        textView.setTextSize(20f);
        return textView;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition,
            boolean isLastChild, View convertView, ViewGroup parent) {
        TextView textView = this.getTextView();
        textView.setText(childInfo[groupPosition][childPosition]);

        return textView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }

}

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/expandableListView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >
    </ExpandableListView>

</RelativeLayout>

 

posted @ 2013-03-25 23:11  小三小山  阅读(497)  评论(0编辑  收藏  举报