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