对于使用ExadableListView的使用

在使用exadablelistview中主要的事对于adapter中几个方法的认识

 
 
  1. private class MyExpandableListViewAdapter extends BaseExpandableListAdapter {  
  2.   
  3.     //  获得某个父项的某个子项  
  4.     @Override  
  5.     public Object getChild(int parentPos, int childPos) {  
  6.         return dataset.get(parentList[parentPos]).get(childPos);  
  7.     }  
  8.   
  9.     //  获得父项的数量  
  10.     @Override  
  11.     public int getGroupCount() {  
  12.         return dataset.size();  
  13.     }  
  14.   
  15.     //  获得某个父项的子项数目  
  16.     @Override  
  17.     public int getChildrenCount(int parentPos) {  
  18.         return dataset.get(parentList[parentPos]).size();  
  19.     }  
  20.   
  21.     //  获得某个父项  
  22.     @Override  
  23.     public Object getGroup(int parentPos) {  
  24.         return dataset.get(parentList[parentPos]);  
  25.     }  
  26.   
  27.     //  获得某个父项的id  
  28.     @Override  
  29.     public long getGroupId(int parentPos) {  
  30.         return parentPos;  
  31.     }  
  32.   
  33.     //  获得某个父项的某个子项的id  
  34.     @Override  
  35.     public long getChildId(int parentPos, int childPos) {  
  36.         return childPos;  
  37.     }  
  38.   
  39.     //  按函数的名字来理解应该是是否具有稳定的id,这个方法目前一直都是返回false,没有去改动过  
  40.     @Override  
  41.     public boolean hasStableIds() {  
  42.         return false;  
  43.     }  
  44.   
  45.     //  获得父项显示的view  
  46.     @Override  
  47.     public View getGroupView(int parentPos, boolean b, View view, ViewGroup viewGroup) {  
  48.         return view;  
  49.     }  
  50.   
  51.     //  获得子项显示的view  
  52.     @Override  
  53.     public View getChildView(int parentPos, int childPos, boolean b, View view, ViewGroup viewGroup) {  
  54.         return view;  
  55.     }  
  56.   
  57.     //  子项是否可选中,如果需要设置子项的点击事件,需要返回true  
  58.     @Override  
  59.     public boolean isChildSelectable(int i, int i1) {  
  60.         return false;  
  61.     }  
  62.  }  
第一点就是对adapter中的实现方法进行理解认识
 
 

@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
    if(convertView==null){
        //创建layoutinflaterserver
        LayoutInflater layoutInflater= (LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView=layoutInflater.inflate(R.layout.parent_item,null);

    }
    convertView.setTag(R.layout.parent_item, groupPosition);
    convertView.setTag(R.layout.child_item, -1);
    TextView text = (TextView) convertView.findViewById(R.id.expanable_text);
    text.setText(parentList[groupPosition]);
    return convertView;
}

@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) MainActivity
                .this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.child_item, null);
    }
    convertView.setTag(R.layout.parent_item, groupPosition);
    convertView.setTag(R.layout.child_item, childPosition);
    TextView text = (TextView) convertView.findViewById(R.id.child_title);
    text.setText(dataset.get(parentList[groupPosition]).get(childPosition));
    return convertView;
}

重点是这两个方法类似于recycle让view中的getview的方法

在判断conview为空后首先做的就是创建Layoutinflatar的一个类的服务听




猜你喜欢

转载自blog.csdn.net/xukangone/article/details/79674269