Как добавить ребенка к определенному родительскому лицу в расширяемый список

Я создал приложение, в котором я загрузил данные из sqlite, установив предел 10 и когда список прокручивается вниз, он загружает еще 10 данных из sqlite, используя async-задачу в этой части, я выбрал группы заголовков, а также дочерние Datas, но я не знаю, как поставить ребенка на новые даты, может ли кто-нибудь сказать мне, как добавить ребенка к определенному родителю в расширяемом списке?

Асинхронная задача:

class LoadDataTask extends AsyncTask<String, Void, String> { ArrayList<Daybook> daybooks1 = new ArrayList<Daybook>(); @Override protected String doInBackground(String... olimits) { String limits = null; loadingMore = true; try { limits = olimits[0]; grouplistDataHeader = new ArrayList<String>(); grouplistDataChild = new HashMap<String, List<Daybooklist>>(); groupdaybooklists = new ArrayList<Daybooklist>(); databasehandler = new DatabaseHandler(getApplicationContext()); loadeddate = new ArrayList<String>(); String selectquery = "SELECT date,IFNULL(SUM(amountin),0) as amountin,IFNULL(SUM(amountout),0),daybookusertype as amountout FROM daybookdetails GROUP BY strftime('%Y-%m-%d',date) ORDER BY strftime('%Y-%m-%d',date) DESC LIMIT 11,20"; SQLiteDatabase db = databasehandler.getReadableDatabase(); Cursor cursor = db.rawQuery(selectquery, null); if (cursor.moveToFirst()) { do { loadeddate.add(cursor.getString(0)); for (String s : loadeddate) { newdate = s; } String[] spiliter = newdate.split("-"); String year = spiliter[0]; String month = spiliter[1]; String dates = spiliter[2]; if (month.startsWith("01")) { disorderedlist = dates + "Jan" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("02")) { disorderedlist = dates + "Feb" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("03")) { disorderedlist = dates + "Mar" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("04")) { disorderedlist = dates + "Apr" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("05")) { disorderedlist = dates + "May" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("06")) { disorderedlist = dates + "Jun" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("07")) { disorderedlist = dates + "Jul" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("08")) { disorderedlist = dates + "Aug" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("09")) { disorderedlist = dates + "Sep" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("10")) { disorderedlist = dates + "Oct" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("11")) { disorderedlist = dates + "Nov" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("12")) { disorderedlist = dates + "Dec" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } for (int i = 0; i < daybooks1.size(); i++) { listDataHeader.add(disorderedlist); groupdaybooklists = databaseHandler.getAllDaywisedaybookdetails(newdate); for (int j = 0; j < groupdaybooklists.size(); j++) { String name = groupdaybooklists.get(j).getName(); String desc = groupdaybooklists.get(j).getDescription(); String type = groupdaybooklists.get(j).getType(); String usertype = groupdaybooklists.get(j).getUsertype(); String amtin = groupdaybooklists.get(j).getAmountin(); String amtout = groupdaybooklists.get(j).getAmountout(); String extamt = groupdaybooklists.get(j).getExtraamt(); String mobno = groupdaybooklists.get(j).getMobileno(); String datess = groupdaybooklists.get(j).getSdate(); String time = groupdaybooklists.get(j).getCtime(); chid.add(new Daybooklist(name, desc, type, usertype, amtin, amtout, extamt, mobno, datess, time)); } listDataChild.put(listDataHeader.get(i), chid); } } while (cursor.moveToNext()); } cursor.close(); db.close(); } catch (Exception e) { e.printStackTrace(); } return disorderedlist; } @Override protected void onPostExecute(String disorderedlist) { listAdapter.notifyDataSetChanged(); loadingMore = false; } 

Часть, где я запутался:

  @Override protected String doInBackground(String... olimits) { String limits = null; loadingMore = true; try { limits = olimits[0]; grouplistDataHeader = new ArrayList<String>(); grouplistDataChild = new HashMap<String, List<Daybooklist>>(); groupdaybooklists = new ArrayList<Daybooklist>(); databasehandler = new DatabaseHandler(getApplicationContext()); loadeddate = new ArrayList<String>(); String selectquery = "SELECT date,IFNULL(SUM(amountin),0) as amountin,IFNULL(SUM(amountout),0),daybookusertype as amountout FROM daybookdetails GROUP BY strftime('%Y-%m-%d',date) ORDER BY strftime('%Y-%m-%d',date) DESC LIMIT 11,20"; SQLiteDatabase db = databasehandler.getReadableDatabase(); Cursor cursor = db.rawQuery(selectquery, null); if (cursor.moveToFirst()) { do { loadeddate.add(cursor.getString(0)); for (String s : loadeddate) { newdate = s; } String[] spiliter = newdate.split("-"); String year = spiliter[0]; String month = spiliter[1]; String dates = spiliter[2]; if (month.startsWith("01")) { disorderedlist = dates + "Jan" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("02")) { disorderedlist = dates + "Feb" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("03")) { disorderedlist = dates + "Mar" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("04")) { disorderedlist = dates + "Apr" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("05")) { disorderedlist = dates + "May" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("06")) { disorderedlist = dates + "Jun" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("07")) { disorderedlist = dates + "Jul" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("08")) { disorderedlist = dates + "Aug" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("09")) { disorderedlist = dates + "Sep" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("10")) { disorderedlist = dates + "Oct" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("11")) { disorderedlist = dates + "Nov" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } else if (month.startsWith("12")) { disorderedlist = dates + "Dec" + year; disorderedlist = disorderedlist.replaceAll("\\s+", ""); } for (int i = 0; i < daybooks1.size(); i++) { listDataHeader.add(disorderedlist); groupdaybooklists = databaseHandler.getAllDaywisedaybookdetails(newdate); for (int j = 0; j < groupdaybooklists.size(); j++) { String name = groupdaybooklists.get(j).getName(); String desc = groupdaybooklists.get(j).getDescription(); String type = groupdaybooklists.get(j).getType(); String usertype = groupdaybooklists.get(j).getUsertype(); String amtin = groupdaybooklists.get(j).getAmountin(); String amtout = groupdaybooklists.get(j).getAmountout(); String extamt = groupdaybooklists.get(j).getExtraamt(); String mobno = groupdaybooklists.get(j).getMobileno(); String datess = groupdaybooklists.get(j).getSdate(); String time = groupdaybooklists.get(j).getCtime(); chid.add(new Daybooklist(name, desc, type, usertype, amtin, amtout, extamt, mobno, datess, time)); } listDataChild.put(listDataHeader.get(i), chid); } } while (cursor.moveToNext()); } cursor.close(); db.close(); } catch (Exception e) { e.printStackTrace(); } return disorderedlist; } 

Вам необходимо инициализировать адаптер listView внутри метода onCreate :

 listView.setAdapter(adapter); // Pode ser com as listas vazias 

После этого, в фоновом режиме, вам нужно только загрузить данные и сохранить в атрибуте некоторого класса. После этого в методе onPostResult вам необходимо обновить адаптер и уведомить listView:

 protected void onPostExecute(String disorderedlist) { adapter.addGroupList(groupList); // Need to implement the method in the adapter adapter.addChildList(childList); // Need to implement the method in the adapter adapter.notifyDataSetChanged(); loadingMore = false; } список protected void onPostExecute(String disorderedlist) { adapter.addGroupList(groupList); // Need to implement the method in the adapter adapter.addChildList(childList); // Need to implement the method in the adapter adapter.notifyDataSetChanged(); loadingMore = false; } 

Это идея, изменение вашей логики.

Intereting Posts
Измените цвет текста меню опций, когда мы используем приложение: showAsAction = "always" Трансляция анимации FAB, которая работает ниже android L? Как получить представление из координат события в android при вращении просмотра? Как отобразить ListView в форме таблицы в android Android ChatHead ограничивает прикосновение только к себе, НО мне нужна поддержка второго пальца одновременно, вторая касающаяся области вне чата, Как получить GNU C, перечисленные в настройках Полученные сообщения GCM Анимация повторного импульса Использование метода updateAppWidgetOptions для AppWidgetManager для хранения параметров настройки виджета Android Parcelable Problem с массивом Как реализовать сложные запросы с помощью Content Provider? ListFragment появляется дважды на телефоне В Android, как получить профиль подключенного Bluetooth-устройства? Как перетащить плавающую кнопку действия над плейером представления Как передать аргумент другим способом в Android / Java?