1 . ExpandableListView布局:
<ExpandableListView
android:, forumLogoUrl);
startActivity(intent);
}
}
return false;
}
});
//去掉默认的箭头
expandablelistView.setGroupIndicator(null);
}
/**
* ExpandableListview (显示树型列表)容器
* @author user
*
*/
public class ExpandableListViewAdapter extends BaseExpandableListAdapter {
Activity activity;
public ExpandableListViewAdapter(Activity activity){
this.activity = activity;
layoutInflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//child method stub
public Object getChild(int ParentPosition, int childPosition) {
return childrenForums.get(ParentPosition).get(childPosition);
}
public long getChildId(int ParentPosition, int childPosition) {
return childPosition;
}
public int getChildrenCount(int ParentPosition) {
if(childrenForums.size()==0 || childrenForums.get(ParentPosition)==null){
return 0;
}
return childrenForums.get(ParentPosition).size();
}
//填充子item
public View getChildView(int ParentPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView==null){
holder = new ViewHolder();
convertView=(View)layoutInflater.inflate(R.layout.bbs_category_expandable_child_list_item, null);
holder.fourmText=(TextView)convertView.findViewById(R.id.bbs_children_list_item);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
if(childrenForums.size()>0 && ParentPosition<childrenForums.size()){
if(isLastChild){
convertView.setBackgroundResource(R.drawable.bbs_categrory_last_children_list);
}else{
convertView.setBackgroundResource(R.drawable.bbs_categrory_children_list);
}
if(childPosition<childrenForums.get(ParentPosition).size()){
Forum childrenForum = childrenForums.get(ParentPosition).get(childPosition);
holder.fourmText.setText(childrenForum.getPname());
}
}
return convertView;
}
//group method stub
public Object getGroup(int ParentPosition) {
return parentsForums.get(ParentPosition);
}
public int getGroupCount() {
if(null==parentsForums || parentsForums.size()==0){
return 0;
}
return parentsForums.size();
}
public long getGroupId(int ParentPosition) {
return ParentPosition;
}
//填充父item
public View getGroupView(int ParentPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView==null){
holder = new ViewHolder();
convertView=(View)layoutInflater.inflate(R.layout.bbs_category_expandable_group_list_item, null);
holder.imageView =(ImageView) convertView.findViewById(R.id.bbs_expandle_list_image);
holder.fourmText=(TextView)convertView.findViewById(R.id.bbs_category_group_listitem);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
if(parentsForums.size()>0 && ParentPosition<parentsForums.size()){
Forum parentForum = parentsForums.get(ParentPosition);
holder.fourmText.setText(parentForum.getPname());
//设置父item右边的箭头
if(parentsForums.get(ParentPosition).getChildren()!=null && parentsForums.get (ParentPosition).getChildren().size()!=0){
holder.imageView.setBackgroundResource(R.drawable.bbs_forum_parent_default_image);
}else{
holder.imageView.setBackgroundResource(0);
}
//如果展开时 替换右边的箭头
if(isExpanded && childrenForums.size()>0 && childrenForums.get(ParentPosition)!=null){
holder.imageView.setBackgroundResource(R.drawable.bbs_forum_parent_expand_image);
}
}
return convertView;
}
public boolean hasStableIds() {
return false;
}
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
class ViewHolder {
ImageView imageView;
TextView fourmText;
}
}
相关文章: