Имеется ExpandableListView
, так он инициализирован:
// Находим наш list
ExpandableListView listView = (ExpandableListView)findViewById(R.id.exListView);
//Создаем набор данных для адаптера
ArrayList<ArrayList<String>> groups = new ArrayList<ArrayList<String>>();
ArrayList<String> children1 = new ArrayList<String>();
ArrayList<String> children2 = new ArrayList<String>();
children1.add("Child_1");
groups.add(children1);
children2.add("Child_1");
groups.add(children2);
//Создаем адаптер и передаем context и список с данными
ExpListAdapter adapter = new ExpListAdapter(getApplicationContext(), groups);
listView.setAdapter(adapter);
Вот класс ExpListAdapter
:
class ExpListAdapter extends BaseExpandableListAdapter {
private ArrayList<ArrayList<String>> mGroups;
private Context mContext;
public ExpListAdapter (Context context,ArrayList<ArrayList<String>> groups){
mContext = context;
mGroups = groups;
}
@Override
public int getGroupCount() {
return mGroups.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return mGroups.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
return mGroups.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return mGroups.get(groupPosition).get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@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) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.exp_group_view, null);
}
if (isExpanded){
//Изменяем что-нибудь, если текущая Group раскрыта
}
else{
//Изменяем что-нибудь, если текущая Group скрыта
}
if (groupPosition==0){
TextView textGroup = (TextView) convertView.findViewById(R.id.textGroup);
textGroup.setText("Обмен");
}else if(groupPosition == 1){
TextView textGroup = (TextView) convertView.findViewById(R.id.textGroup);
textGroup.setText("Настройки");
}
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
View convertView, ViewGroup parent) {
if(groupPosition==0){
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.exp_child_view_exchange, null);
}
//Тут можно навешать события на элементы exp_child_view_exchange
}else if (groupPosition == 1){
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.exp_child_view_settiong, null);
}
//Тут можно навешать события на элементы exp_child_view_settiong
}
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
В методе getChildView
я исходя из позиции группы определяю, что в группе выводить, в первой группе у меня 5 кнопок выводится,а во второй EditText
. Так вот собственно в чем проблема. Если, после открытия активности, открыть сначала первую группу, а потом вторую, то все отлично, выводится все как нужно. Но если открыть сначала вторую, а потом первую, то в первой и второй группе почему-то оказывается содержимое второй группа. Если убрать вот эти проверки if(convertView == null)
, то тоже все отлично, но при открытии группа заполняется снова, в связи с чем теряется все что ввел пользователь... я так понимаю, когда сначала открывается вторая группа, то почему-то первая группа тоже инициализируется вьюшкой... как этого избежать?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как при помощи флекс-технологии построить 2 колонки одинаковой ширины? При этом элементы внутри колонок не должны переносится на следующую...
Делаю вывод html страницы в RubyOnRails проекте и столкнулся с такой проблемойЕсть ячейка таблицы в которую я вывожу строку, например "значение1,...
Помогите, разобраться почему по клику на кнопку Каталог, мне после ссылок bl_catalogProducts__link сыпяться только значения Первого списка из навигации...
Есть одномерный массив a, нужно вывести все элементы массива начиная от K и заканчивая N элементом массива: