2012-10-01 16 views
9

Ich habe bemerkt, dass die Methode zum RelativeLayout Objekt setBackground wird für die API-16 (Android 4.1) gezielt und höher, aber meine Anwendung hat das Ziel API 8 und ich kann es nicht verwenden.Android - Set Layout Hintergrund programmatisch

Gibt es eine alternative Lösung für dieses Problem (neben dem Markieren der Klasse/Methode mit TargetApi (16) oder Ändern der Ziel-API im Manifest)?
Danke!

bearbeiten: Eklipse war Buggy und es zeigte mir den gleichen Fehler für setBackgroundDrawable aber jetzt scheint es zu funktionieren. Danke für Ihre Hilfe.

Antwort

31

Verwenden eines von:

Wenn Sie eine Ressource von R.java) Setzen Sie uns e dem zweiten, stellen Sie sicher, eine bedingte Kontrolle über Ihre API-Version zu tun:

if (Build.VERSION.SDK_INT >= 16) 
    view.setBackground(...); 
else 
    view.setBackgroundDrawable(...); 

... und es mit @TargetApi(16) und @SuppressWarnings("deprecation") markiert.

+1

ah Ich kenne die .setBackgroundDrawable (Drawable) -Methode, aber für mich hatte die IDE den gleichen Fehler mit API 16 Anforderung. Ich benutze Eclipse und es schien ein Fehler zu sein, nachdem ich die IDE wieder geöffnet habe und den Code ein bisschen gereinigt habe. Vielen Dank und Entschuldigung für Ärger. – sethengine

+1

@sethengine Mach dir keine Sorgen über den Ärger - wir sind hier, um zu helfen! Schön, dass Sie das Problem gelöst haben. – Eric

1

Kommt drauf an. Wenn Sie eine Farbe als Hintergrund festlegen möchten, verwenden Sie setBackgroundColor(). Für ein Drawable können Sie die jetzt veraltete Methode setBackgroundDrawable() für APIs unter 16 und setBackground() für API 16-Geräte verwenden. Sie können auch setBackgroundResource() zum Festlegen einer Ressource als Hintergrund verwenden.

Beachten Sie, dass viele Methoden als veraltet markiert sind, aber ich bin noch auf eine, die tatsächlich entfernt wurde. Auch wenn Sie die veraltete Methode sogar in API 16 verwenden könnten, würde ich empfehlen, Ihre Ziel-API auf 16 zu setzen und abhängig von der API-Version, die das Gerät ausführt, eine andere Option zu verwenden, um zwischen den Methoden zu wechseln.

Verwandte Themen