2014-11-11 6 views
-1

Я пытаюсь отобразить Android ListView, как показано ниже, используя несколькои ArrayList<TimeSlot>. Но я не могу достичь этой структуры. ArrayList<PatientAppointmentList> заселен из базы данных и Array<TimeSlot> локально создан ArrayList. Как я могу совместить время в ArrayList<PatientAppointmentList>, и время в ArrayList<TimeSlots> является проблемой.Android: Listview с несколькими адаптерами

Пожалуйста, обратитесь к изображению ниже, чтобы узнать подробности и помочь мне.

К слову, текст Доступен не из базы данных. Если для конкретного слота нет назначений, я хочу, чтобы программный фрагмент отображался как доступный.

Спасибо заранее. enter image description here

+0

yourAdapter = новый адаптер (активность actiivty, ArrayList , ArrayList ); –

+0

@NaveenTamrakar Пожалуйста, продумайте Навеен, я не получил вашего ответа. –

+0

У вас есть адаптер coustem –

ответ

0

Попробуйте использовать ArrayList объект назначения, который содержит ArrayList PatientAppointmentList и ArrayList Timeslot

структура Назначение:

public class Appointment { 
    TimeSlot timeSlot; 
    PatientAppointmentList patientAppointmentList; 

    public Appointment(TimeSlot timeslot, AppointmentList appointmentList) { 
     this.timeSlot = timeSlot; 
     this.appointmentList = appointmentList; 
    } 
} 

Добавить временные интервалы для eachPatientAppointmentList:

ArrayList<Appointment> appointments = new ArrayList<>(); 
for (int i = 0; i < patientAppointmentList.size(); i++) { 
    appointments.add(new Appointment(new TimeSlot, new PatientAppointmentList)); 
} 
+0

Kaspar. О том, если оба массива имеют одинаковый размер. Я имею в виду, у меня есть 12-часовые интервалы времени с 09:00 до 21:00, а в назначении arraylist у меня может быть только одна встреча в день. –

+0

Вы можете добавить пустую встречу, и когда вы показываете ее на экране, вы можете просто показать Доступное. – Kaspar

1

Использование ArrayList HashMap объединить оба списка данные.

ArrayList<HashMap<String,Object>> list = new ArrayList<HashMap<String, Object>>(); 
TimeSlot[] timeSlotList; 
for (int i=0;i<timeSlotList.length;i++){ 
    HashMap<String,Object> row = new HashMap<String, Object>(); 
    row.put("slot_time",timeSlotList[i]); 
    // try to get data from your database base on TimeSlot and check if data is not available for this time slot put available static string other wise add data which are came from database. 
    ArrayList<PatientAppointmentList> appointmentList = getAppointmentFromDatabase(timeSlotList.get(i)); 
    if(appointmentList != null && appointmentList.size() > 0){ 
     row.put("appointment_status",getAppointmentFromDatabase(timeSlotList.get(i))); 
    }else{ 
     row.put("appointment_status","Available"); 
    } 
    list.add(row); 
} 
+0

Haresh Chhelana: Что делать, если оба массива имеют одинаковый размер? –

+0

Если оба не одинаковы, то как вы можете отличить, какой временной интервал для какой встречи? –

+0

Я отредактировал мой вопрос. Статус «Доступно» не из базы данных. –

Смежные вопросы