ExpendableListView(可展开的列表组件)笔记

废话少说,直接上代码:

public class ExpendableListViewActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.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[][]{
                  {"小A","小B","小C","小D"},{"中A","中B","中D","中D"},{"大A","大B","大C"}
          };
        @Override
        //判断子列表是否被选中,在相应的图表上可以绑定相应的事件
        public boolean isChildSelectable(int groupPosition, int childPosition) {
            // 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 isExpanded,
                View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            LinearLayout ll=new LinearLayout(ExpendableListViewActivity.this);
            ll.setOrientation(0);
            ImageView  logo=new ImageView(ExpendableListViewActivity.this);
            logo.setImageResource(logos[groupPosition]);
            ll.addView(logo);
            TextView textView=getTextView();
            textView.setText(getGroup(groupPosition).toString());
            ll.addView(textView);
            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 armTypes.length;
        }
        
        @Override
        //返回父组件
        public Object getGroup(int groupPosition) {
            // TODO Auto-generated method stub
            return  armTypes[groupPosition] ;
        }
        
        @Override
        public int getChildrenCount(int groupPosition) {
            // TODO Auto-generated method stub
            return arms[groupPosition].length;
        }
        private TextView getTextView(){
            AbsListView.LayoutParams lp=new AbsListView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,50);
            TextView textView=new TextView(ExpendableListViewActivity.this);
             textView.setLayoutParams(lp);
             textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);
             textView.setPadding(36, 0, 0, 0);
             textView.setTextSize(20);
            return textView;
            
        }
        
        @Override
        //G该方法决定每个子选项 的外观
        public View getChildView(int groupPosition, int childPosition,
                boolean isLastChild, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            TextView textView=getTextView();
            textView.setText(getChild(groupPosition, childPosition).toString());
            return textView;
        }
        //获取子列表的ID
        @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 arms[groupPosition][childPosition];
        }
    };
    ExpandableListView expandableListView=(ExpandableListView)findViewById(R.id.list);
        expandableListView.setAdapter(adapter);
    }
}
ExpandableListView思路分:一、父选项的getGroupView 、getGroupId、getGroupCount、getGroup 二,子选项的getChildView、getChile、getChild、getChildrenCount
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值