7

Weekly_Calendar_View Ich möchte wöchentliche Kalenderansicht erstellen und in jedem Rasterelement (jeden Tag) gibt es möglicherweise mehrere Aktivitäten. Aus diesem habe ich wöchentliche Kalenderansicht mit Rasteransicht erstellt, aber ich möchte Aktivitäten hinzufügen, wenn es irgendwelche gibt bestimmtes Datum durch dynamische Überprüfung von db. Wie im Bild. Unten ist mein getView (Code) ..Wie kann man ein anderes Layout in getView() von gridview adapter in Android aufblasen?

@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; 
} 

}

Here I vorübergehend Textansicht Ich versuche dynamisch hinzuzufügen, aber ich möchte hier das Layout meiner benutzerdefinierten activity_item aufzublasen und zu Rasterzelle hinzufügen.

+0

what's Ihr Problem? – Blackbelt

+0

Ich habe versucht, Aktivitätselemente an die Listenansicht für die Rasteransichtszelle zu binden, aber es funktioniert nicht ordnungsgemäß. Ich möchte hier mein benutzerdefiniertes activity_item und es zur Rasteransichtszelle aufblasen. Wie kann ich es tun? – Narendra

+0

@blackbelt können Sie mir sagen, wie kann ich hier mein benutzerdefiniertes Layout aufblasen und es zu Rasteransicht Element für die Anzahl der verfügbaren Aktivitäten an diesem Tag hinzufügen. – Narendra

Antwort

1

meinen Sie, dass Sie mehrere Zeilen in dem Bereich hinzufügen möchten, der gerade vom Bereich "Beschäftigt" belegt wird? Möchten Sie, dass es so viel Platz benötigt, wie es benötigt wird, oder sollte es scrollbar sein?

sowieso scheint es, dass Sie in die richtige Richtung sind. Sie haben ein lineares Layout verwendet, um den Bereich "beschäftigt" zu halten, richtig? Verwenden Sie also einfach eine For-Schleife und legen Sie die Daten, die Sie anzeigen möchten.

natürlich, weil die GridView Elemente recycelt, müssten Sie das LineareLayout jedes Mal leeren, wenn Sie das getView erreichen, aber es sollte immer noch funktionieren.

, wenn Sie die layoutInflater in der for-Schleife verwenden möchten, das ist auch möglich:

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

Eigentlich möchte ich hinzufügen, dass "beschäftigt" wie mehrere Elemente für die Anzahl der Aktivitäten an diesem bestimmten Tag verfügbar. So, wie Sie dieses benutzerdefinierte activity_item-Layout mehrmals aufblähen und zum root Linear Layout hinzufügen. – Narendra

+0

Ich bin mir nicht sicher, ob ich das verstehe. meinst du nicht, dass du statt "beschäftigt" eine Liste mit Gegenständen hast? Wenn ja, das ist die Antwort, die ich bereits geschrieben habe. Sie müssen auch entscheiden, ob es scrollbar sein soll oder nicht, und vielleicht die maximale Anzahl der anzuzeigenden Objekte. es ist jetzt eine Designfrage. die technischen Details kommen nach dem Entwurf ... –

+0

Ich werde Ihre Lösung versuchen und Sie wissen lassen ... danke für Ihren Vorschlag. – Narendra

Verwandte Themen