新建 MyExpandableAdapter.java



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


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


/**
 * 分组列表适配器
 */
public class MyExpandableAdapter extends BaseExpandableListAdapter {
    Context context;
    JSONArray list;


    public MyExpandableAdapter(Context context, JSONArray list) {
        this.context = context;
        this.list = list;
    }


    @Override
    public int getGroupCount() {
        return list.size();
    }


    @Override
    public int getChildrenCount(int groupPosition) {
        JSONObject object = (JSONObject) list.getJSONObject(groupPosition);
        JSONArray jsonArray = object.getJSONArray("groups");
        return jsonArray.size();
    }


    @Override
    public Object getGroup(int groupPosition) {
        return list.get(groupPosition);
    }


    @Override
    public Object getChild(int groupPosition, int childPosition) {
        JSONObject object = (JSONObject) list.getJSONObject(groupPosition);
        JSONArray jsonArray = object.getJSONArray("groups");
        return jsonArray.get(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) {
        GroupHolder holder;
        if(convertView == null){
            convertView = View.inflate(context, R.layout.item_group, null);
            holder = new GroupHolder(convertView);
            convertView.setTag(holder);
        }else{
            holder = (GroupHolder) convertView.getTag();
        }


        //设置数据
        JSONObject group = (JSONObject) getGroup(groupPosition);
        holder.groupName.setText(group.getString("groupname"));
        return convertView;
    }


    class GroupHolder{
        TextView groupName;
        public GroupHolder(View convertView){
            groupName = (TextView) convertView.findViewById(R.id.group_title);
        }
    }
//获取分组子布局
    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        ChildHolder holder;
        if(convertView == null){
            convertView = View.inflate(context, R.layout.itme_layout, null);
            holder = new ChildHolder(convertView);
            convertView.setTag(holder);
        }else{
            holder = (ChildHolder) convertView.getTag();
        }
        //设置数据
        JSONObject object = (JSONObject) getChild(groupPosition,childPosition);


        holder.title.setText(object.getString("title"));
        return convertView;
    }
    class ChildHolder{
        TextView title;
        public ChildHolder(View convertView){
            title = (TextView) convertView.findViewById(R.id.itme_title);
        }
    }
    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }

}


更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android(安卓)商显会议平板聚光灯效果实现
  3. Android实现圆角弹框功能
  4. android截取屏幕图
  5. android 获取手机中的联系人
  6. Android动态获取当前手机IP地址
  7. Android弹出式提示框 PopupWindow
  8. android 日期对话框
  9. Android获取包相关信息--code

随机推荐

  1. 管理大量文件的提示?
  2. PHP正则表达式
  3. PHP代码在不需要时在Javascript中自动运
  4. Web2.0 (social media) 企业应用的架构
  5. HTML5关于get请求添加headers的问题
  6. 在页面重新加载时添加活动链接和jquery幻
  7. 采集资源的方法(文字,图片) [图片]
  8. 如何将添加到ajax html编辑器的文本保存
  9. 在Chtmlview中,浏览多frame的框架的网页,有
  10. 如何在应用程序中嵌入图像并在HTML控件中