您的位置:首页 > 其它

PullToRefreshExpandableListView 和BaseExpandableListAdapter

2015-08-13 11:44 387 查看
PullToRefreshExpandableListView用于解决像QQ好友列表那种中组件,用法和ListView相同,不过他的设置很繁琐并且填充要用BaseExpandableListAdapter填充,同时这个adapter也实现了notifyDataSetChanged()方法,

下面列举PullToRefreshExpandableListView 一些设置

listView.getRefreshableView().setGroupIndicator(null);

listView.getRefreshableView().setDivider(null);

listView.getRefreshableView().setSelector(android.R.color.transparent);

listView.getRefreshableView().setOnGroupClickListener(this); //可以设置组点击监听

listView.setPullToRefreshOverScrollEnabled(true); //可刷新

listView.setMode(PullToRefreshBase.Mode.PULL_FROM_END); //设置模式,此模式是可以上拉,BOTH是上拉+下拉

//上下拉监听,注意实现这个OnRefreshListener2类的对象
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ExpandableListView>() {

@Override

public void onPullDownToRefresh(PullToRefreshBase<ExpandableListView> refreshView) {

LogUitls.showToast(getActivity(), "下拉刷新");

loadNextPage();

}

@Override

public void onPullUpToRefresh(PullToRefreshBase<ExpandableListView> refreshView) {

LogUitls.showToast(getActivity(), "上拉加载更多");

loadNextPage();

}

});

listView.getRefreshableView().setAdapter(adapter);// 填充adapter

下面是adapter的设置

private BaseExpandableListAdapter adapter=new BaseExpandableListAdapter() {

// 返回组的个数

@Override

public int getGroupCount() {

return list.size();

}

//返回每组中items的个数

@Override

public int getChildrenCount(int groupPosition) {

return list.get(groupPosition).getClass_way().size();

}

//返回组对象

@Override

public Object getGroup(int groupPosition) {

return list.get(groupPosition);

}

//返回每组items对象

@Override

public Object getChild(int groupPosition, int childPosition) {

return list.get(groupPosition).getClass_way().get(childPosition);

}

//返回组id

@Override

public long getGroupId(int groupPosition) {

return groupPosition;

}

//返回组中items的id

@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) {

if (convertView==null){

convertView=inflater.inflate(R.layout.items_parents_class_list_fragment,null);

}

TextView grade= ViewHolder.get(convertView,R.id.tv_grade_items_parents_class_list_fragment);

grade.setText(list.get(groupPosition).getGrade_name());

TextView subject=ViewHolder.get(convertView,R.id.tv_subject_items_parents_class_list_fragment);

subject.setText(list.get(groupPosition).getSubject_name());

TextView goodsName=ViewHolder.get(convertView,R.id.tv_name_items_parents_class_list_fragment);

goodsName.setText(list.get(groupPosition).getGoodsName());

return convertView;

}

// 返回子布局

@Override

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {

if (convertView==null){

convertView=inflater.inflate(R.layout.items_childs_class_list_fragment,null);

}

TextView classWay=ViewHolder.get(convertView,R.id.tv_class_way_items_childs_class_list_fragment);

classWay.setText(list.get(groupPosition).getClass_way().get(childPosition).getClass_way_name());

TextView classWayPrice=ViewHolder.get(convertView,R.id.tv_class_way_price_items_childs_class_list_fragment);

classWayPrice.setText("¥"+list.get(groupPosition).getClass_way().get(childPosition).getClass_price()+"/时");

return convertView;

}

@Override

public boolean isChildSelectable(int groupPosition, int childPosition) {

return true;

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: