2013-07-13 10 views
7

Weekly_Calendar_View Chcę utworzyć cotygodniowe widoku kalendarza i wewnątrz każdego elementu sieci (codziennie) istnieją może być kilka activities.Out tego Stworzyłem tygodniowy widok kalendarza przy użyciu widoku siatki, ale chcę dodać działania, jeśli takie istnieją dla konkretna data przez dynamiczne sprawdzanie bazy danych. Podobnie jak na zdjęciu. Poniżej jest moje getView() kod ..Jak nadmuchać inny układ wewnątrz getView() adaptera gridview w systemie Android?

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    if (convertView == null) { 
     LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row = inflater.inflate(R.layout.calendar_week_gridcell, parent, false); 
    } 

    txtRowTitle = (TextView) row.findViewById(R.id.txtDayTitle); 

    LinearLayout root = (LinearLayout) row.findViewById(R.id.linear_root); 

    String dayTitle = list.get(position); 
    txtRowTitle.setText(dayTitle); 
    if (position == currentWeekDay - 1) 
     root.setBackgroundResource(R.drawable.calheader); 
    if (!activityMap.isEmpty() && activityMap.containsKey(activityDateList.get(position))) { 
     TextView item = new TextView(mContext); 
     item.setText(activityMap.get(activityDateList.get(position))); 
     item.setBackgroundColor(Color.GREEN); 
     root.addView(item); 
    } 

    return row; 
} 

}

Oto jestem chwilowo próbuje dodać widok tekstowy dynamicznie ale chcę zawyżać tutaj mój własny układ activity_item i dodać go do komórki siatki.

+0

What's Twój problem? – Blackbelt

+0

Próbowałem powiązać elementy aktywności z widokiem listy dla komórki widoku siatki, ale nie działa ona poprawnie. Chcę nadmuchać tutaj moje custom activity_item i to do komórki widoku siatki. Jak mogę to zrobić? – Narendra

+0

@blackbelt Czy możesz mi powiedzieć, w jaki sposób można nadmuchać mój własny układ i dodać go do widoku siatki w celu wyświetlenia liczby aktywności dostępnych w tym dniu. – Narendra

Odpowiedz

1

to znaczy, że chcesz dodać wiele wierszy w obszarze, który jest obecnie podjętej przez „zajęty” przestrzeni? Czy chcesz, aby zajmował tyle miejsca, ile potrzebuje, czy powinien być przewijany?

każdym razie wydaje się, jesteś we właściwym kierunku. użyłeś linearLoutout do utrzymania obszaru "zajętości", prawda? więc po prostu użyj pętli for i podaj dane, które chcesz pokazać.

oczywiście, bo GridView przetwarza elementy, trzeba by opróżnić linearLayout za każdym razem dotrzeć do getView, ale powinna nadal działać.

jeśli chcesz używać layoutInflater w pętli for, to również możliwe:

subRow = inflater.inflate(R.layout.sub_row, linearLayout, true); 
+0

Właściwie chcę dodać, że "Zajęty", jak wiele pozycji dla liczby działań dostępnych w tym konkretnym dniu. A więc w jaki sposób wielokrotnie nadmuchać ten niestandardowy layout activity_item i dodać go do układu Linear Line. – Narendra

+0

Nie jestem pewien, czy rozumiem. nie masz na myśli, że zamiast "zajęty", masz listę przedmiotów w środku? jeśli tak, to jest odpowiedź, którą już napisałem. musisz również zdecydować, czy ma być przewijany, czy nie, i może maksymalna liczba elementów do pokazania. to jest teraz pytanie projektowe. szczegóły techniczne pojawiają się po projekcie ... –

+0

Spróbuję twojego rozwiązania i dam ci znać ... dziękuję za twoją sugestię. – Narendra

Powiązane problemy