更改Android的微调文本颜色时,按下按钮(Change Android spinner text

2019-10-18 07:27发布

我有一系列代表的一系列主题的ToggleButtons。 当切换,切换按钮改变其背景颜色来表示它的状态。 当在checked状态,切换按钮有一个较深的颜色。

微调框覆盖的切换按钮,允许用户选择该主题的难度。

如何更改微调的文本颜色(白色)按下切换按钮时? 我想我可以处理不断变化的微调选择,但我奋力想办法来改变文字颜色。

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

        }
    });

参考 。

试试这个方法。 这对我的作品。 我希望这将工作你。



Answer 2:

在微调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);



  }


Answer 3:

我们对我们的应用程序的一件事是一个自定义的微调视图。 它有一个背后的黑色半透明圆角正方形,比它稍大。 它可以在任何背景。



Answer 4:

从Gunaseelan答案帮我指出了正确的方向。 正如他所说,与工作ToggleButton是要走的路。 该ToggleButton控件有一个android:onClick ,您可以使用指定的方法时切换按钮被触发运行XML属性/点击(如描述在这里 。

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

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

这改变只有当已经选择了微调显示的文本。



文章来源: Change Android spinner text color when button pressed