#android #android-recyclerview #sectionedrecyclerviewadapter
#Android #android-recyclerview #разделенный recyclerviewadapter
Вопрос:
Я создаю разделенный список recyclerview. используя ответ сервера, один для заголовка, а второй для дочернего, как добавить его динамически в мой разделенный recyclerview, но когда я получаю вывод в recyclerview, последняя запись вставляется два раза с дочерним списком.
с сервера есть два массива json, подобных этому
"status": "1",
"msg": "Success",
"resident": {[
"wing_id": "4",
"resident_details": [
{
"first_name": "Suraj",
"last_name": "Jumbad",
"wing_id": "4",
},
{
"first_name": "Laxman ",
"last_name": "Kathar",
"wing_id": "4",
}
]
}
вот мой код
try {
if (response.has("status") amp;amp; response.getString("status").equals("1")) {
JSONArray residents = response.getJSONArray("resident");
for (int i = 0; i < residents.length(); i ) {
JSONObject jsonObject_residents_details = residents.getJSONObject(i);
String wing_name = jsonObject_residents_details.getString("wing_name");
String wing_id = jsonObject_residents_details.getString("wing_id");
sectionHeaderss.add(new SectionHeader(child, wing_name, i));
JSONArray resident_details = jsonObject_residents_details.getJSONArray("resident_details");
for (int j = 0; j < resident_details.length(); j ) {
JSONObject jsonObject = resident_details.getJSONObject(j);
String wing_ids = jsonObject.getString("wing_id");
String first_name = jsonObject.getString("first_name");
childList.add(new Child(first_name, wing_ids, wing_name));
//child add
//sectionHeaderss.add(new SectionHeader(childList, wing_name, i));
}
//main add
if (!childList.isEmpty()) {
for (int k = 0; k < childList.size(); k ) {
if (childList.get(k).getId().equals(wing_id)) {
sectionHeaderss.add(new SectionHeader(childList, wing_name, i));
}
}
} else {
sectionHeaderss.add(new SectionHeader(child, wing_name, i));
}
}
adapterRecycler = new AdapterSectionRecycler(GroupListActivity.this, sectionHeaderss);
rv_resident_list.setAdapter(adapterRecycler);
if (adapterRecycler != null) {
adapterRecycler.notifyDataSetChanged();
}
} else {
Toast.makeText(GroupListActivity.this, response.get("msg").toString(), Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Toast.makeText(GroupListActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
Functions.pbVisiblity(true, pb_rv_resident_list);
}
Комментарии:
1. Вы имеете в виду, что хотите показать recycleview с элементом, показывающим название крыла, за которым следуют элементы, показывающие данные резидента в этом крыле, для всех крыльев и резидентов в json?
2. Пожалуйста, добавьте изображения того, какой результат вы хотите и какой результат вы получаете прямо сейчас.