Button.setBackgroundResource() funktioniert nicht

  • 3 Antworten
  • Letztes Antwortdatum
G

geodroid

Neues Mitglied
0
Hallo zusammen,
ich habe in meiner App folgendes Problem. Ich habe insgesamt 25 Buttons (je 5 in 5 Arrays), die beim Drücken durch folgende Methode ihr aussehen verändern.

Code:
public void DaySet (boolean stateDefault, boolean stateSelected, Button[] Day, int number)
{
    if (stateSelected)
    {
    	Day[number].setBackgroundResource(R.drawable.buttondesignmdpi);
    	Day[number].setTextColor(0xff000000);
    }
    else if (stateDefault && !stateSelected)
    {
    	Day[number].setBackgroundResource(R.drawable.buttondesigngreymdpi);
	Day[number].setTextColor(0xffaaaaaa);
    }
    else
    {
    	Day[number].setBackgroundColor(0x00000000);
	Day[number].setTextColor(0xffffffff);
    }
}

Beim "ersten" öffnen, das heißt nach Neuinstallation oder nach Beenden per Task-Manager, funktioniert alles perfekt. Wenn man jedoch die App einmal per Zurück-Button beendet, ohne dass ein Button grau (buttondesigngreymdpi) ist, wird der graue Hintergrund nicht mehr dargestellt, stattdessen ist er einfach transparent.(Obwohl es auch noch weitere Fälle gibt, in denen es trotzdem funktioniert oder auch nicht.) Die Textfarbe wird jedoch noch geändert und durch Logausgaben weiß ich, dass die Zeile mit dem Setzen des Hintergrundes ausgeführt wird. Hat irgendjemand eine Idee, was ich falsch mache? Oder ist das ein generelles Problem von Android?:confused:

P.S.: Ich benutze Android 2.3.3.
 
Endlich funktioniert es!:thumbsup:
Durch herumprobieren habe ich des Rätsels Lösung selber herausgefunden.
Vorher hatte ich einen drawable und einen drawable-land Ordner. Jetzt habe ich den drawable Ordner einfach nach drawable-port umbenannt und es funktioniert. Mir ist allerdings immernoch rätselhaft warum. Hat jemand eine Idee?

Mit freundlichen Grüßen
geodroid
 
Hallo,
weißt du denn für was das -land und -port steht? Ich kenne deine App nicht, aber bei Buttons kann ich mir denken, dass sie im normalen drawable-Ordner besser aufgehoben sind.

Viele Grüße
 
Naja -land steht für Landscape (Querformat) und -port steht für Portrait (Hochformat). Ich denke schon, dass die Button-Hintergründe dort richtig sind, da die Buttons im Querformat ein anderes Seitenverhältnis haben als im Hochformat. Ich frage mich halt nur, warum im Hochformat nicht einfach der drawable Ordner benutzt wird, sondern man diesen erst nach drawable-port umbenennen muss.

Gesendet von meinem GT-I9001 mit der Android-Hilfe.de App
 

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
499
AnnaBauer21
AnnaBauer21
AnnaBauer21
Antworten
6
Aufrufe
1.018
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten