Android-Einstellung LinearLayout-Hintergrund programmgesteuert

7

Ich habe eine Situation, in der ich einen Hintergrund auf einem LinearLayout programmatisch setzen muss.

In meinem Layout setze ich meinen Hintergrund mit 'android: background="? android: attr / activatedBackgroundIndicator", aber ich möchte das programmatisch einstellen:

%Vor%

Ich habe versucht mit:

%Vor%

Aber es stürzt ab. Irgendwelche Ideen?

Bearbeiten: Ich hatte auch versucht mit:

%Vor%     
Buffalo 08.10.2012, 12:11
quelle

6 Antworten

13

Ich hatte das gleiche Problem und habe es mit diesem Code behoben.

Die android.R.attr. * sind Zeiger auf die in einem Theme und nicht auf die tatsächlich zeichnende Ressource definiert. Sie müssen das TypedArray verwenden, um auf die ID zuzugreifen.

%Vor%

Ich habe das in meinem Adapter für benutzerdefinierte Listen verwendet, als SDK erkannt wurde und es funktioniert hat.

    
mlabraca 19.02.2013, 11:30
quelle
5

probiere diese Zeile

%Vor%

statt

%Vor%     
Syn3sthete 08.10.2012 12:13
quelle
3

probiere das

aus %Vor%     
Naveen Kumar 08.10.2012 12:17
quelle
1

Es ist eine schlechte Idee, es so zu machen, wie es die angenommene Antwort sagt. Das Problem ist, dass Sie auch die onItemCheckedStateChanged der Liste aufrufen müssen, um zu aktualisieren, was benötigt wird (zB der Titel der Aktionsleiste).

In diesem Fall müssen Sie einfach getListView().setItemChecked(position, true); aufrufen, wenn das Element aktiviert ist, und getListView().setItemChecked(position, false); , wenn es nicht aktiviert ist.

    
Yonatan Nir 21.05.2015 14:21
quelle
1
___ qstnhdr ___ Android-Einstellung LinearLayout-Hintergrund programmgesteuert ___ answer12781584 ___

probiere das

aus %Vor%     
___ qstntxt ___

Ich habe eine Situation, in der ich einen Hintergrund auf einem LinearLayout programmatisch setzen muss.

In meinem Layout setze ich meinen Hintergrund mit 'android: background="? android: attr / activatedBackgroundIndicator", aber ich möchte das programmatisch einstellen:

%Vor%

Ich habe versucht mit:

%Vor%

Aber es stürzt ab. Irgendwelche Ideen?

Bearbeiten: Ich hatte auch versucht mit:

%Vor%     
___ answer14956397 ___

Ich hatte das gleiche Problem und habe es mit diesem Code behoben.

Die android.R.attr. * sind Zeiger auf die in einem Theme und nicht auf die tatsächlich zeichnende Ressource definiert. Sie müssen das TypedArray verwenden, um auf die ID zuzugreifen.

%Vor%

Ich habe das in meinem Adapter für benutzerdefinierte Listen verwendet, als SDK erkannt wurde und es funktioniert hat.

    
___ answer30376535 ___

Es ist eine schlechte Idee, es so zu machen, wie es die angenommene Antwort sagt. Das Problem ist, dass Sie auch die TypedValue outValue = new TypedValue(); context.getTheme().resolveAttribute(android.R.attr.selectableItemBackgroun d, outValue, true); view.setBackgroundResource(outValue.resourceId); der Liste aufrufen müssen, um zu aktualisieren, was benötigt wird (zB der Titel der Aktionsleiste).

In diesem Fall müssen Sie einfach %code% aufrufen, wenn das Element aktiviert ist, und %code% , wenn es nicht aktiviert ist.

    
___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___ tag123layout ___ Das Layout-Tag ist für Fragen zur Platzierung, Ausrichtung und Ausrichtung von Objekten in Bezug auf ein enthaltendes Element gedacht. Bei Fragen zu CSS verwenden Sie stattdessen das "css" -Tag. ___ answer12781530 ___

probiere diese Zeile

%Vor%

statt

%Vor%     
___ answer46907430 ___

Bitte versuchen Sie den folgenden Code.

%Vor%     
___ answer3190393 ___

Sie können so etwas verwenden

%code%

    
___
Amilcar Andrade 17.10.2015 18:54
quelle
1

Bitte versuchen Sie den folgenden Code.

%Vor%     
Farhan Khan 24.10.2017 09:55
quelle

Tags und Links