2015-04-06 116 views
2

存在一些我自己無法解決的問題。 我目前正在爲使用多個複選框的訓練製作一個簡單的android應用程序。當複選框使用setEnable時,更改.setTextColor的顏色(true)

我想要做的是如標題所示,當條件爲setEnabled(true)時,更改複選框文本的顏色。 我已經通過谷歌搜索,但無法找到解決方案。我已經添加了下面使用的示例代碼。 Sonce,我很喜歡這個職業球員對我的幫助。

public void onCheckedChanged(CompoundButton buttonView, 
         boolean isChecked) { 
        if (isChecked) { 

         buttonView.setTextColor(Color.GREEN); 


         buttonClicked.add(buttonView.getText() 
           .toString()); 
         buttonView.setTextSize(18); 
         count += 1; 
         Log.d("TAG","is checked = "+isChecked); 
         if (count >= 7) { 

          for (int i = 0; i < checkbox.length; i++) { 

           String item = Integer.toString(i+1); 
           if (buttonClicked.indexOf(item)>-1) { 
            checkbox[i].setEnabled(true); 

            Log.d("TAG",i+" = 2is checked = "+isChecked); 
           // buttonView.setTextColor(Color.YELLOW); 
           } else { 

            Log.d("TAG",i+" = 3is checked = "+isChecked); 
            checkbox[i].setEnabled(false); 
           // buttonView.setTextColor(Color.RED); 


           } 


          } 

         } 

        } else { 

         if (count <= 7) { 

          for (int i = 0; i < checkbox.length; i++) { 
           checkbox[i].setEnabled(true); 
          // buttonView.setTextColor(Color.BLACK); 


          } 
         } 
         count--; 


         buttonClicked.remove(buttonView.getText() 
           .toString()); 
         buttonView.setTextSize(15); 

        } 
+0

,您在搜索的'setChecked(布爾值)'定義的顏色?你的問題不清楚,你能否說清楚,這對我們幫助你很有幫助:) – Gunaseelan 2015-04-06 09:25:54

+0

對不起,我的對話不好。問題是我無法高效地設置複選框的文本顏色。例如,如果我按下多於7個複選框,則所有複選框將具有黑色文本顏色,但是,在我使用的當前代碼中,當取消選中複選框而不是黑色時,綠色設置。我覺得這很困難。換句話說,我想在取消選中時將文本的所有顏色設置爲黑色,並且在取消選中時也勾選選中的複選框的複選框。 。 – user3264924 2015-04-06 09:34:11

回答

2

創建XML選擇,把在 /res/color/text_my_checked.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_checked="true" android:color="#00ff00"/> 
<item android:color="#000000"/> <!-- anything else --> 
</selector> 

並使用這樣的佈局文件

<CheckBox 
    android:id="@+id/checkBox1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Check" 
    android:textColor="@color/text_my_checked" 
    android:checked="true" /> 
+0

您的解決方案解決了我的問題! – user3264924 2015-04-06 09:49:14

0

你可以改變複選框的文本顏色如下,

yourCheckBox.setTextColor(Color.GREEN); 
0

這是一個選項:

checkboxbutton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

      Checkbox b = (CheckBox)v; 
      if (b.isChecked()) { 
        //your code 
        b.setTextColor(Color.GREEN); 

      } 
      else 
       //your code 
       b.setTextColor(Color.BLACK); 

      } 
     }); 

此外,您還可以選擇在color.xml文件

b.setTextColor(getResources().getColor(R.color.blue)); 
相關問題