Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MyTagExpandableListAdapter extends BaseExpandableListAdapter {
- private static final int CHILD_TYPE_COUNT = 2;
- private Context _context;
- private List<String> _listDataHeader; // header titles
- // child data in format of header title, child title
- private HashMap<String, List<String>> _listDataChild;
- public MyTagExpandableListAdapter(Context context, List<String> listDataHeader,
- HashMap<String, List<String>> listChildData) {
- this._context = context;
- this._listDataHeader = listDataHeader;
- this._listDataChild = listChildData;
- }
- @Override
- public Object getChild(int groupPosition, int childPosititon) {
- return this._listDataChild.get(this._listDataHeader.get(groupPosition))
- .get(childPosititon);
- }
- @Override
- public long getChildId(int groupPosition, int childPosition) {
- return childPosition;
- }
- @Override
- public int getChildType(int groupPosition, int childPosition) {
- String s = (String)getChild(groupPosition, childPosition);
- if(s.isEmpty())
- return 0;
- else
- return 1;
- }
- @Override
- public int getChildTypeCount() {
- return CHILD_TYPE_COUNT;
- }
- @Override
- public View getChildView(int groupPosition, final int childPosition,
- boolean isLastChild, View convertView, ViewGroup parent) {
- final String childText = (String) getChild(groupPosition, childPosition);
- EmptyViewHolder emptyViewHolder = null;
- PopulatedViewHolder populatedViewHolder = null;
- int type = getChildType(groupPosition, childPosition);
- if (convertView == null || (type == 0 && (convertView.getTag()) instanceof PopulatedViewHolder)
- || (type == 1 && (convertView.getTag()) instanceof EmptyViewHolder)) {
- LayoutInflater infalInflater = (LayoutInflater) this._context
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- switch(type){
- case 0:
- //type is empty
- emptyViewHolder = new EmptyViewHolder();
- convertView = infalInflater.inflate(R.layout.empty_layout,
- parent, false);
- TextView tv = (TextView) convertView.findViewById(R.id.empty);
- emptyViewHolder.empty = tv;
- //...initialize your viewcomponents of the populated layout here...
- convertView.setTag(emptyViewHolder);
- break;
- case 1:
- populatedViewHolder = new PopulatedViewHolder();
- convertView = infalInflater.inflate(R.layout.list_item, null);
- TextView tv1 = (TextView) convertView.findViewById(R.id.lblListItem);
- populatedViewHolder.UserName = tv1;
- convertView.setTag(populatedViewHolder);
- }
- }
- else {
- switch (type) {
- case 0:
- emptyViewHolder = (EmptyViewHolder)convertView.getTag();
- break;
- case 1:
- populatedViewHolder = (PopulatedViewHolder)convertView.getTag();
- break;
- }
- }
- switch(type){
- case 0:
- //empty
- //set the values of your empty view here
- emptyViewHolder.empty.setText("test");
- break;
- case 1:
- //populated
- //set the values of your populated view here
- populatedViewHolder.UserName.setText(childText);
- break;
- }
- return convertView;
- }
- @Override
- public int getChildrenCount(int groupPosition) {
- return this._listDataChild.get(this._listDataHeader.get(groupPosition))
- .size();
- }
- @Override
- public Object getGroup(int groupPosition) {
- return this._listDataHeader.get(groupPosition);
- }
- @Override
- public int getGroupCount() {
- return this._listDataHeader.size();
- }
- @Override
- public long getGroupId(int groupPosition) {
- return groupPosition;
- }
- @Override
- public View getGroupView(int groupPosition, boolean isExpanded,
- View convertView, ViewGroup parent) {
- String headerTitle = (String) getGroup(groupPosition);
- if (convertView == null) {
- LayoutInflater infalInflater = (LayoutInflater) this._context
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- convertView = infalInflater.inflate(R.layout.list_group, null);
- }
- TextView lblListHeader = (TextView) convertView
- .findViewById(R.id.lblListHeader);
- lblListHeader.setTypeface(null, Typeface.BOLD);
- lblListHeader.setText(headerTitle);
- return convertView;
- }
- @Override
- public boolean hasStableIds() {
- return false;
- }
- @Override
- public boolean isChildSelectable(int groupPosition, int childPosition) {
- return true;
- }
- static class PopulatedViewHolder {
- //declare the elements of a populated view here
- public TextView UserName;
- }
- static class EmptyViewHolder {
- //declare the elements of an empty view here
- public TextView empty;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement