封闭式微调器的文本颜色

Mar*_*nop 23 android textcolor spinner

据我所知,封闭的旋转器实际上是一个View.但我猜它有一个TextView地方可以显示文字.我如何访问它,TextView以便我可以更改文本颜色?

编辑:我需要动态地以编程方式更改此项,而不是在XML中.

TextView v = (TextView) getView(mySpinner);

v.setTextColor(.....
Run Code Online (Sandbox Code Playgroud)

这不起作用......

谢谢!

    array_typ=new String[5];
    array_typ[0]="Pressure";
    array_typ[1]="Level";

    array_typ[2]="Overage";
    array_typ[3]="Under";
    array_typ[4]="Taken";


    adaptertyp = new ArrayAdapter<Object>(this,R.layout.simple_spinner_item, array_typ);
    typ.setAdapter(adaptertyp);
Run Code Online (Sandbox Code Playgroud)

Vit*_*ito 34

要修改文本颜色,请在res/layout文件夹中创建一个新的xml文件(例如my_spinner_text.xml).将文本视图添加到新的xml文件并修改您想要的方式:

<TextView android:id="@+id/spinnerText" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true"
    android:textColor="#CCCCCC" 
    android:textSize="20dp" 
    xmlns:android="http://schemas.android.com/apk/res/android"/>
Run Code Online (Sandbox Code Playgroud)

创建一个使用新TextView并将其设置为微调器的ArrayAdapter:

    Spinner localSpinner = (Spinner)findViewById(R.id.mySpinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.spinner_array,
                R.layout.my_spinner_text);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    localSpinner.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

  • 您提到的网站似乎处于离线状态. (4认同)

Ruk*_*ias 24

您可以更改文本颜色或访问setOnItemSelectedListener事件中的textview,

            spinnerObject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
                 ((TextView)parentView.getChildAt(0)).setTextColor(Color.rgb(249, 249, 249));   

            }
Run Code Online (Sandbox Code Playgroud)


Com*_*are 9

我知道封闭的微调器实际上是一个视图,我想.

是.具体来说,它是你告诉你SpinnerAdapter创建的任何东西.

但我猜它有一个TextView在那里显示文本.

这取决于你告诉你SpinnerAdapter创建的内容.

如何访问该TextView以便我可以更改textcolor?

理想情况下,你没有 - 你首先通过你告诉你SpinnerAdapter创造的任何东西给它正确的颜色.如果颜色变化,请覆盖getView()SpinnerAdapter的颜色并更改该点的颜色.

在紧要关头,您可以尝试通过调用getSelectedView()来获取View关闭时显示的当前信息Spinner,但是您在此处所做的任何更改都可能会在用户的下一个选择中被消除,并且如果较早的颜色View被回收,则替代颜色可能稍后返回.