У меня есть адаптер расширяемого списка с 6 элементами. Я добавил радио-кнопки в виде списка. Все отлично работает Я хотел бы улучшить эту функцию, сохранив последний выбранный элемент в списке радиокнопок как отмеченный / выбранный.
Я пытался сохранить дочерний элемент pos как currentpos, но всегда первый элемент отмечен. даже если я выберу другие элементы. Что мне здесь не хватает? Заранее спасибо за ваше время.
public View getChildView(int groupPos, final int childPos,
boolean isLastChild, View convertView, ViewGroup parent) {
final String childText = (String) getChild(groupPos, childPos);
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.studio_child_list, null);
}
RadioButton radioButton = convertView.findViewById(R.id.radioChildLists);
radioButton.setText(childText);
int tag = Integer.parseInt(childText.split(" ")[1]) - 1;
// here
radioButton.setChecked(childPos == currentpos);
radioButton.setTag(tag);
radioButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("ExpList", "onClick: group " + groupPos + ": child " + childPos + " tag " + view.getTag().toString());
getStudioTag.onActionPerformed(view.getTag().toString(), childText);
// here
currentpos = (Integer) view.getTag();
notifyDataSetChanged();
}
});
return convertView;
}
Я использую адаптер в MainActivity, как показано ниже
ExpandableListView listView = new ExpandableListView(MainActivity.this);
listView.setGroupIndicator(null);
ExpandableListAdapter expandableListAdapter = new ExpandableListAdapter(MainActivity.this, studioListHeader, studioChildList, MainActivity.this::onActionPerformed);
listView.setAdapter(expandableListAdapter);
builder.setView(listView);
studioExpanddialog = builder.create();
studioExpanddialog.show();