2013-07-02 238 views
0

我有一系列代表一系列主題的ToggleButtons。切換時,ToggleButton會更改其背景色以指示其狀態。當處於checked狀態時,ToggleButton的顏色較暗。按下按鈕時更改Android微調器文本顏色

Selected state. enter image description here

微調框覆蓋的切換按鈕,允許用戶選擇該主題的難度。

當按下切換按鈕時,如何更改微調器的文本顏色(白色)?我想我可以處理改變微調選擇器,但我正在努力找出一種方法來改變文本顏色。

+0

看看[這](http://stackoverflow.com/a/14833851/2345913) – CRUSADER

+0

@CRUSADER我知道我可以改變微調文本co或者使用自定義微調器,但在這種情況下,我需要在按下按鈕時在運行時更改文本顏色。我不明白你連接的答案會如何幫助解決我的問題。 –

+0

你可以發佈你的代碼切換按鈕選擇事件嗎? –

回答

1

請嘗試以下方法。

  1. 在代碼中創建一個名爲
一個xml

spinnertext.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinnerText" 
    style="?android:attr/spinnerItemStyle" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:paddingBottom="2dp" 
    android:paddingLeft="6dp" 
    android:textColor="#41f2f3" /> 

現在。

ArrayAdapter<String> sp_adapter = new ArrayAdapter<String>(this, R.layout.spinnertext, your_array); 

sp.setAdapter(sp_adapter); 

然後切換按鈕

ToggleButton tb = (ToggleButton) findViewById(R.id.toggleButton1); 
    tb.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton arg0, boolean isChecked) { 
      TextView tv = (TextView) findViewById(R.id.spinnerText); 
      if (isChecked) 
       tv.setTextColor(Color.RED); 
      else 
       tv.setTextColor(Color.BLUE); 

     } 
    }); 

Reference工作。

試試這個方法。這對我有用。我希望這也能起作用。

+0

感謝您的回答,它幫助我獲得了一半。我會盡快回復我最終做的事情。 –

1

在微調onItemSelected方法,你必須改變這樣的:

public void onItemSelected(AdapterView<?> parent, View arg1, int arg2, 
    long arg3) { 
// TODO Auto-generated method stub 

item = (String) parent.getItemAtPosition(arg2); 
((TextView) parent.getChildAt(0)).setTextColor(0x00000000); 



    } 
+0

只需在選擇該項目時更改微調器項目的顏色,將無法解決問題。即如果我的切換按鈕處於未選中狀態(白色背景),那麼將微調項目文本顏色更改爲白色將意味着我將在白色背景上顯示白色文本。 –

0

一件事,我們有我們的應用程序是一個自定義視圖微調。它後面有一個半透明的黑色圓形正方形,比它略大。它適用於任何背景。

0

Gunaseelan的回答幫助我指出了正確的方向。正如他所建議的,與ToggleButton一起工作是一條路。該ToggleButton插件具有可用於指定的方法,以當所述切換按鈕被觸發運行 XML屬性/點擊(如所描述的here

設置微調文本和旋轉器選擇器的顏色可以是有點困難要改變微調文本顏色:

ToggleButton cardiologyToggle = (ToggleButton) findViewById(R.id.cardiology_toggle); 
     if (cardiologyToggle.isChecked()) { 
      spinnerText.setTextColor(Color.WHITE); 
     } else { 
      spinnerText.setTextColor(Color.BLACK); 
     } 

只有當已經選擇了微調文本顯示這改變