• 安卓学习第15课——ExpandableListView


    AbsListView.LayoutParams lp=new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,64);
    这句话的意思是 创建一个布局(LayoutParams)的实例 lp。
    AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,64) 指定了该布局的宽和高;
    -1代表LayoutParams.MATCH_PARENT,即该布局的尺寸将填满它的父控件;
    -2代表LayoutParams.WRAP_CONTENT,即该布局的尺寸将为其自身内容的尺寸;
    下面是BaseExpandableListAdapter的用法
    <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"
       android:orientation="vertical">
       <ExpandableListView
        android:id="@+id/list"
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:childIndicator="@drawable/ic_launcher"
        />
    
    </LinearLayout>
    package com.example.expandablelistview;
    
    
    import android.app.Activity;
    import android.app.ActionBar;
    import android.app.Fragment;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    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.os.Build;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //创建一个BaseExpandableListAdapter对象
            ExpandableListAdapter adapter=new BaseExpandableListAdapter(){
    
                int[] logos=new int[]{
                        R.drawable.p,R.drawable.z,R.drawable.t
                };
                private String[] armTypes=new String[]{
                    "神族兵种","虫族兵种","人族兵种"    
                };
                private String[][] arms=new String[][]{
                        {"狂战士","龙骑士","黑暗圣堂","点兵"},
                        {"小狗","刺蛇","飞龙","自爆飞机"},
                        {"机枪兵","护士mm","幽灵"}
                };
                @Override
                public int getGroupCount() {
                    return arms.length;
                }
    
                @Override
                public int getChildrenCount(int groupPosition) {
                    
                    return arms[groupPosition].length;
                }
    
                @Override
                public Object getGroup(int groupPosition) {
                    return armTypes[groupPosition];
                }
    
                @Override
                public Object getChild(int groupPosition, int childPosition) {
                    return arms[groupPosition][childPosition];
                }
    
                @Override
                public long getGroupId(int groupPosition) {
                    return groupPosition;
                }
    
                @Override
                public long getChildId(int groupPosition, int childPosition) {
                    return childPosition;
                }
    
                @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(0);
                    ImageView logo=new ImageView(MainActivity.this);
                    logo.setImageResource(logos[groupPosition]);
                    ll.addView(logo);
                    TextView textView=getTextView();
                    textView.setText(getGroup(groupPosition).toString());
                    ll.addView(textView);
                    return ll;
                }
    
                private TextView getTextView(){
                    AbsListView.LayoutParams lp=new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,64);
                    TextView textView=new TextView(MainActivity.this);
                    textView.setLayoutParams(lp);
                    textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);
                    textView.setPadding(36, 0,0,0);
                    textView.setTextSize(20);
                    return textView;
                }
                @Override
                public View getChildView(int groupPosition, int childPosition,
                        boolean isLastChild, View convertView, ViewGroup parent) {
                    TextView textView=getTextView();
                    textView.setText(getChild(groupPosition,childPosition).toString());
                    return textView;
                }
    
                @Override
                public boolean isChildSelectable(int groupPosition,
                        int childPosition) {
                    return true;
                }
                
            };
        
    
        ExpandableListView expandableView=(ExpandableListView) findViewById(R.id.list);
        expandableView.setAdapter(adapter);
        }
    
    }

  • 相关阅读:
    tar.gz 查看原文件大小
    ssh2 和 ssh 的公钥转换
    MySQL binlog 导入
    app自动测试-微信(android)-web-1
    crontab中执行java程序的脚本
    tomcat 启动慢解决(/dev/random)
    app自动测试-微信(iOS)-web-1
    git
    java.lang.OutOfMemoryError: unable to create new native thread
    docker (centOS 7) 使用笔记6
  • 原文地址:https://www.cnblogs.com/Yvettey-me/p/3930449.html
Copyright © 2020-2023  润新知