Я пытаюсь динамически создать ExpandableListView в своем приложении. В родительских строках отображаются даты следующих 7 дней, и я получаю детей из веб-службы. Но выборка и отображение детей - это не моя проблема. Я столкнулся с проблемой динамического отображения родительских строк. Мне нужно отображать даты следующих 7 дней в родительских строках.Dynamically Create ExpandableListView
Я объявлял этот пустой массив строк по всему миру.
private String[] parent = new String[7];
Затем, внутри onCreate(), я использовал этот код для создания содержимого родительского массива.
Calendar cal = Calendar.getInstance();
String strdate = null;
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
int i;
for(i=0;i<7;i++)
{
if (cal != null) {
strdate = sdf.format(cal.getTime());
}
parent[i] = strdate;
cal.add(Calendar.HOUR_OF_DAY, 24);
}
Но активность дает NullPointerException на MyExpandableListAdapter.getGroupView().
(Может быть, потому, что родительский массив не инициализирован изначально?)
, потому что код работает, когда я объявляю родительский массив Initally в
private String[] parent = new String[] {"","","".....};
Не уверен, что это причина вашей проблемы, но вы неправильно создаете свои строки даты. Прежде всего, вы добавляете 0 часов в 'cal' (24 * 0), тогда вы добавляете 24, 48, 72 и т. Д. Это накопительно, поэтому вы получите сегодня, завтра, через два дня после завтра, через 5 дней послезавтра и т. Д. Попробуйте добавить «date» и оставить «i» из него ... «cal.add (Calendar.DATE, 1)» - это также должно опрокинуть «MONTH», если оно прошло до конца текущего месяца , – Squonk
Спасибо за указание. Я прекратил умножать i на него. Строки отображаются правильно, когда я сначала объявляю родительский массив, но хочу, чтобы это было сделано динамически. – Swayam