封闭式微调器的文字颜色

我明白,封闭的微调实际上是一个View ,我想。 但我猜测它有一个TextView地方显示文本。 如何访问该TextView以便我可以更改文本颜色?

编辑:我需要改变这个编程方式,而不是在XML中。

 TextView v = (TextView) getView(mySpinner); v.setTextColor(..... 

这不工作…

谢谢!

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

  • Android:我如何访问默认的文字颜色? (没有主题,只是标准的一个)
  • Android的 - 如何更改TimePicker中的textColor?
  • 如何在MPAndroidChart中设置颜色?
  • 我明白,封闭的微调实际上是一个观点,我想。

    是。 具体来说,无论你告诉SpinnerAdapter创build什么,

    但我猜测它有一个TextView的地方显示文本。

    这将取决于你告诉SpinnerAdapter创build的内容。

    如何访问该TextView,以便我可以更改文本颜色?

    理想情况下,您不需要 – 首先通过任何您告诉SpinnerAdapter创build的东西,您都可以给它正确的颜色。 如果颜色变化,请在SpinnerAdapter重写getView()并更改该点的颜色。

    在一个捏,你可以尝试调用getSelectedView()来获取当前的View由closures的Spinner ,但无论你在这里做的任何更改可能会被淘汰在用户的下一个select,替代颜色可能会稍后返回,如果以前的View得到回收。

    要修改文本颜色,请在res / layout文件夹中创build一个新的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"/> 

    创build一个使用新的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); 

    您可以更改文本颜色或可以访问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)); } 

    以编程方式执行此操作,您必须扩展适配器类,如下所示:

      ArrayAdapter<CharSequence> adapter = new ArrayAdater(this){ @Override public View getView(final int position, View convertView, ViewGroup parent) { View v = super.getView(position, convertView, parent); // change the color here of your v v. ... etc. etc } } 

    对于更改closures的微调的文本颜色我已经这样做的工作

     @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = vi.inflate(R.layout.context_row_icon, null); } TextView mTitle = (TextView) view.findViewById(R.id.context_label); ImageView flag = (ImageView) view.findViewById(R.id.context_icon); mTitle.setText(values[position].getLabel(activity)); if (!((LabelItem) getItem(position)).isEnabled()) { mTitle.setTextColor(activity.getResources().getColor(R.color.context_item_disabled)); } else { mTitle.setTextColor(activity.getResources().getColor(R.color.context_item)); } return view; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = vi.inflate(R.layout.context_row_icon, null); } TextView mTitle = (TextView) view.findViewById(R.id.context_label); ImageView flag = (ImageView) view.findViewById(R.id.context_icon); mTitle.setText(values[position].getLabel(activity)); mTitle.setTextColor(activity.getResources().getColor(R.color.context_item_disabled)); return view; }