2012-11-15 30 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

我發現了這個問題。由於代碼流中存在錯誤,在設置微調器上的值之後,我再次調用上面顯示的創建適配器並將其設置爲微調器的代碼片段。修正流量和世界是綠色的....