2012-11-15 89 views
2

我想在程序中动态设置微调器的文本大小。我正在使用下面的代码。文本大小发生了变化,但由于某种原因,即使数据库具有不同的值,微调器始终会在索引0处显示项目,我正在使用setSelection方法更新基于数据库的选择。以下是我的代码。难道我做错了什么?在运行时动态更改Android微调器的文本大小

mAutoBackup = (Spinner) findViewById(R.id.auto_backup); 
    final CharSequence [] autoBackupValues = getResources().getStringArray(R.array.auto_backup_options); 
    // Create an ArrayAdapter using the string array and a default spinner layout 
    ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(this, 
      R.layout.spinner_header, autoBackupValues){ 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = super.getView(position, convertView, parent); 
      if (v instanceof TextView) 
       ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_PX, normalTextSize); 
      return v; 
     } 
     @Override 
     public View getDropDownView(int position, View convertView, 
       ViewGroup parent) { 
      View v = super.getDropDownView(position, convertView, parent); 
      if (v instanceof TextView) 
       ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_PX, normalTextSize); 
      return v; 
     } 
    }; 
    // Specify the layout to use when the list of choices appears 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    // Apply the adapter to the spinner 
    mAutoBackup.setAdapter(adapter); 


<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinner_header" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:textSize="22sp" 
    android:textColor="@android:color/black" > 
</TextView> 
+0

什么是spinner_header?你确定它是一个TextView或它有一个TextView? – Snicolas

+0

@Snicolas ...是的spinner_header只是一个文本视图..对不起,我错过了早先的 – Sriman

+0

所以你通过if(instanceof)? – Snicolas

回答

0

我发现了这个问题。由于代码流中存在错误,在设置微调器上的值之后,我再次调用上面显示的创建适配器并将其设置为微调器的代码片段。修正流量和世界是绿色的....