安卓ExpandableListView实例

activity_main.xml

<LinearLayout 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" 
    android:orientation="vertical">


    <ExpandableListView android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ffffff"
        android:cacheColorHint="#00000000"
        android:listSelector="#00000000"
        ></ExpandableListView>


</LinearLayout>

MainActivity.java

package com.example.expandablelistview;


import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AbsListView;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.AbsListView.LayoutParams;


public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置窗口为全屏
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);


ExpandableListAdapter adapter=new BaseExpandableListAdapter() {

//设置组视图显示的图片,这里我们就用同一张图片代替了
int[] logos=new int[]{R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};

//设置组视图显示的文字
String[] groupWords=new String[]{"奔驰","宝马","奥迪"};

//设置子视图显示的文字
String[][] childWords=new String[][]{
{"s600","s500","s350"},
{"523li","750li","760li"},
{"A4","A6","R8"}
};

//定义一个创建文本的方法
TextView getTextView(){

AbsListView.LayoutParams lp=new AbsListView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 64);
TextView textView=new TextView(MainActivity.this);
textView.setLayoutParams(lp);
textView.setGravity(Gravity.LEFT);
textView.setTextSize(20);
textView.setPadding(30, 20, 0, 0);
textView.setTextColor(Color.BLACK);
return textView;
}

@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 ll=new LinearLayout(MainActivity.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
ImageView logo=new ImageView(MainActivity.this);
logo.setImageResource(logos[groupPosition]);
logo.setPadding(30, 0, 0, 0);
ll.addView(logo);
TextView text=getTextView();
text.setText(groupWords[groupPosition].toString());
ll.addView(text);
return ll;
}

@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}

@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return groupWords.length;
}

@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return groupWords[groupPosition];
}

@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return childWords[groupPosition].length;
}

@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
LinearLayout ll=new LinearLayout(MainActivity.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
TextView text=getTextView();
text.setText(childWords[groupPosition][childPosition].toString());
ll.addView(text);
return ll;
}

@Override
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 childWords[groupPosition][childPosition];
}
};

ExpandableListView listView=(ExpandableListView) super.findViewById(R.id.list);

listView.setAdapter(adapter);

}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值