Ich habe ein GridView
, das einen Array-Adapter verwendet, um die Daten zu füllen.
Wenn " GridView
" angezeigt wird, muss standardmäßig eines der Elemente angezeigt werden. Ich habe gridview.setselected()
verwendet, aber das Element GridView
wurde nicht als ausgewählt angezeigt (ich meine, der Hintergrund des Elements wurde nicht geändert). Gibt es eine Möglichkeit, ein bestimmtes Objekt anzuzeigen, das ausgewählt ist, wenn die Rasteransicht geladen ist? Bitte schlagen Sie
In getView()
Methode des Adapters mache folgendes
Setzen Sie in der onItemClick-Methode Adapter.selectedPosition
value und rufen Sie notifydatasetchanged()
auf und fahren Sie dann mit Ihrer erforderlichen Logik fort.
in <GridView>
Element von xml set listSelector
bis android:color/transparent
Ich habe gestern ein wenig mit diesem Thema gekämpft, bevor ich gemerkt habe, dass ich eigentlich wollte, dass der Gegenstand überprüft wird. d. h.
%Vor% GridView.setSelected()
wird tatsächlich von View
übernommen und setzt nur die gesamte GridView
in Ihrem Layout als ausgewählt.
Sie suchen nach GridView.setSelection(int position)
, um das aktuelle Element in GridView
ab Position Null auszuwählen.
Eine weitere nützliche Funktion ist GridView.getFirstVisblePostion()
, die den aktuellen Speicherort auf dem GridView
speichern kann (wenn er groß und scrollbar ist), damit er wiederhergestellt werden kann, wenn Sie aus dem Instanzstatus (z. B. bei einer Rotation) oder wiederhergestellt werden sonst.
Wenn Sie an solchen Dingen arbeiten, ist es immer nützlich, sich den Android Developer anzuschauen Dokumentation für Ihr Widget / Objekt.
Überprüfen Sie mit der folgenden Methode
%Vor%Damit können Sie den Hintergrund des ausgewählten Objekts als neues Bild ändern.
Und wenn Sie die Farbe des ausgewählten Elements ändern möchten, verwenden Sie -
%Vor%Dies wird Ihr Problem lösen.