0

我有一系列代表一系列主题的切换按钮。切换时,ToggleButton 会更改其背景颜色以指示其状态。处于checked状态时,ToggleButton 的颜色较深。

选定的状态。 在此处输入图像描述

Spinner 覆盖 ToggleButton 并允许用户选择主题的难度。

按下 ToggleButton 时如何更改 Spinner 的文本颜色(变为白色)?我想我可以处理更改微调器选择器,但我正在努力寻找一种更改文本颜色的方法。

4

4 回答 4

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);



  }
于 2013-07-02T05:12:35.293 回答
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);

        }
    });
于 2013-07-02T05:50:56.543 回答
0

我们在应用程序中拥有的一件事是自定义微调器视图。它后面有一个半透明的黑色圆角正方形,比它略大。它适用于任何背景。

于 2013-07-02T05:45:45.857 回答
0

Gunaseelan 的回答帮助我指出了正确的方向。正如他所建议的那样,与the 合作ToggleButton是要走的路。小ToggleButton部件有一个android:onClickXML 属性,您可以使用该属性指定在切换/单击 ToggleButton 时运行的方法(如此所述。

设置微调器文本和微调器选择器的颜色可能有点困难。要更改微调器文本颜色:

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

这仅更改选择微调器时显示的文本。

于 2013-07-12T03:29:50.660 回答