package com.xabber.android.ui.adapter; import android.support.v4.app.FragmentActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.TextView; import com.xabber.android.R; import com.xabber.android.ui.activity.ManagedActivity; import java.util.List; public class GroupEditorAdapter extends ArrayAdapter<GroupEditorAdapter.Group> { private FragmentActivity activity; private int layoutResourceId; public GroupEditorAdapter(ManagedActivity activity, int layoutResourceId, List<GroupEditorAdapter.Group> objects) { super(activity, layoutResourceId, objects); this.activity = activity; this.layoutResourceId = layoutResourceId; } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; GroupHolder holder; if (row == null) { LayoutInflater inflater = activity.getLayoutInflater(); row = inflater.inflate(layoutResourceId, parent, false); holder = new GroupHolder(); holder.groupCheckbox = (CheckBox) row.findViewById(R.id.group_item_selected_checkbox); holder.groupName = (TextView) row.findViewById(R.id.group_item_name); row.setTag(holder); } else { holder = (GroupHolder)row.getTag(); } Group group = getItem(position); holder.groupName.setText(group.groupName); holder.groupCheckbox.setChecked(group.isSelected); return row; } static class GroupHolder { TextView groupName; CheckBox groupCheckbox; } public static class Group { String groupName; boolean isSelected; public Group(String groupName, boolean isSelected) { this.groupName = groupName; this.isSelected = isSelected; } public String getGroupName() { return groupName; } public boolean isSelected() { return isSelected; } public void setIsSelected(boolean isSelected) { this.isSelected = isSelected; } } }