我有一系列ToggleButtons代表一系列主题。切换时,ToggleButton会更改其背景颜色以指示其状态。当处于checked
状态时,ToggleButton颜色较深。
Spinner覆盖ToggleButton并允许用户为主题选择难度。
按下ToggleButton时,如何更改微调器的文本颜色(白色)?我想我可以处理更改微调器选择器,但我正在努力找到一种方法来改变文本颜色。
答案 0 :(得分:1)
在Spinner 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);
}
答案 1 :(得分:1)
尝试以下方式。
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);
}
});
试试这种方式。这适合我。我希望这对你也有用。
答案 2 :(得分:0)
我们的应用程序有一件事是自定义微调器视图。它后面有一个半透明的黑色圆角方块,略大于它。它适用于任何背景。
答案 3 :(得分:0)
Gunaseelan的回答帮助我指明了正确的方向。正如他所建议的那样,使用ToggleButton
是可行的方法。 ToggleButton
窗口小部件具有android:onClick
XML属性,您可以使用该属性指定切换/单击ToggleButton时要运行的方法(如here所述。
设置微调器文本和微调器选择器的颜色可能有点困难。要更改微调文本颜色:
ToggleButton cardiologyToggle = (ToggleButton) findViewById(R.id.cardiology_toggle);
if (cardiologyToggle.isChecked()) {
spinnerText.setTextColor(Color.WHITE);
} else {
spinnerText.setTextColor(Color.BLACK);
}
这仅更改选择微调器时显示的文本。