2013-07-20 3 views
0

j'ai créé une application Android qui crée 50 bouton dynamique, qui fonctionne parfaitement, mais le problème est que je ne peux pas mettre un peu de couleur de fond pour ces boutons dynamiquement en utilisant le code commebouton fond colorant dans Android

buttons[i][j].setTextColor(getResources().getColor(R.color.mycolor)); 
buttons[i][j].setBackgroundColor(getResources().getColor(R.color.mycolor)); 

mon code est donné ci-dessous, quelqu'un peut-il s'il vous plaît me dire une solution pour donner de la couleur d'arrière-plan pour le bouton

import android.app.Activity; 
import android.os.Bundle; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.Button; 
import android.widget.LinearLayout; 

public class MyMain extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mymain); 
     createCalender(); 
    } 
    public void createCalender() 
    { 
     LinearLayout layoutVertical = (LinearLayout) findViewById(R.id.liVLayout); 
     LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
     LayoutParams.MATCH_PARENT, 
     LayoutParams.MATCH_PARENT, 1.0f); 
     LinearLayout rowLayout=null; 
     Button[][] buttons = new Button[10][5]; 
     int count=51; 
     int tab=1; 
     for (int i = 0; i<10; i++) 
     { 
      if(count%5==1) 
      { 
       rowLayout = new LinearLayout(this); 
       rowLayout.setWeightSum(5); 
       layoutVertical.addView(rowLayout,param); 
       count=count-5; 
      } 
      for(int j=0;j<5;j++) 
      { 
       buttons[i][j]=new Button(this); 
       buttons[i][j].setText(""+tab); 
       buttons[i][j].setHeight(35); 
       buttons[i[j].setWidth(75);            
       buttons[i][j].setBackgroundResource(R.color.mycolor); 
       buttons[i][j].setTextColor(Color.parseColor("#FFBBFF")); 
       tab++; 

       rowLayout.addView(buttons[i][j],param); 
      } 
     } 
    } 

} 
+1

vous n'appelez pas le setBackgroundColor avant l'onglet ++? – Desu

+0

j'ai même fait cela .......... voir ma mise à jour ......... mais toujours son ne fonctionne pas –

+0

copié et collé votre code, cela fonctionne. Assurez-vous que votre couleur n'est pas entièrement transparente. Pouvez-vous poster la "valeur" de votre couleur du xml? De plus, quel niveau d'API utilisez-vous? – Desu

Répondre

0

Je soupçonne que vous devez utiliser:

buttons[i][j].setBackgroundResource(R.color.mycolor); 

De cette façon, vous écrasez l'image d'arrière-plan existante (Drawable) avec la couleur souhaitée.

+0

maintenant quand je mets ce code à la place Je reçois ........... java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo {com.kotouch/com.kotouch.MyMain}: android.content.res.Resources $ NotFoundException: ID de ressource # 0x7f070000 –

+1

parce que ce que vous obtenez de getColor() est une couleur et non une ressource donc ne peut pas être utilisé comme un. – Desu

+0

@Desu bon point, réponse mise à jour. –