2014-06-14 6 views
0

Je veux utiliser un code qui indique la couleur du bouton (id = button1) et faire quelque chose si la couleur est bleu, Je veux dire =obtenir la couleur du bouton

si la couleur de button1 est bleu type 1, si sa couleur verte, jaune ou autre, tapez game over.

comment puis-je le faire?

i essayé de cette façon:

if(v.getId() == R.id.button1){ 
      ColorDrawable buttonColor = (ColorDrawable) button1.getBackground(); 
      int colorId = buttonColor.getColor(); 
     } 

il y a une erreur:

Multiple markers at this line 
- Type mismatch: cannot convert from ColorDrawable to int 
- The method getColor() is undefined for the type 

et si vous êtes en vol stationnaire au-dessus de la getColor(), vous obtenez une autre erreur:

The method getColor() is undefined for the type ColorDrawable 

Que puis-je faire? thx.

+0

Je suis d'accord avec la réponse de Gabe. La méthode getColor() est seulement disponible dans API 11 (Honeycomb) et ci-dessus. Voir http://stackoverflow.com/a/8089242/775467 – coderplus

+0

Je ne sais pas comment le faire .. Im juste un débutant et la réponse de Gabe est difficile .. – user3731180

Répondre

0

Vous pouvez également essayer quelque chose comme définir la valeur de couleur que l'étiquette comme

android:tag="#ff0000" 

et y accéder à partir du code

String colorCode = (String)btn.getTag(); 

OU

Button button = (Button) findViewById(R.id.my_button); 
Drawable buttonBackground = button.getBackground(); 
1

C'est la mauvaise façon de le faire. Vous ne devriez jamais utiliser les attributs de l'interface utilisateur pour déterminer l'état du programme, ce qui conduit à un code spaghetti. Au lieu de cela, vous devriez avoir une variable dans votre code avec un nom qui signifie quelque chose facilement compris qui suit l'état du bouton. Chaque fois que vous modifiez la couleur du bouton, vous définissez cette variable. Ensuite, lorsque vous devez prendre une décision en fonction de la couleur, vous utilisez cette variable.

+0

Pouvez-vous être plus précis s'il vous plaît? C'est ma première application im, pouvez-vous me donner un moyen de le faire? – user3731180

Questions connexes