2011-10-17 18 views
1

我已經在我的活動下面的代碼:在代碼TextView的設置風格,安卓

...... 
DataCell[i] = new TextView(context,null,R.style.TitleRow); 
DataCell[i].setText(data[i]); 
...... 

這裏是我的style.xml文件,該文件是在res >>值的文件夾:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="TitleRow" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:layout_width">wrap_content</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:textColor">#A0A0A0</item> 
     <item name="android:layout_marginTop">5dp</item> 
     <item name="android:layout_marginBottom">5dp</item> 
     <item name="android:paddingLeft">2dp</item> 
     <item name="android:paddingRight">2dp</item> 
    </style> 
</resources> 

沒有價值顯示.. 但如果我使用DataCell[i] = new TextView(context),它的工作正常。我知道有一個問題,我使用null作爲屬性集。但經過很長時間的尋找,我無法找到一個完美的例子來說明如何去做。我希望有人能夠徹底澄清這一點。

回答

2

我通常最終創建了一個簡單的佈局文件,其中只包含我想要實例化的元素(在您的情況下爲TextView),並且使用了正確的樣式並使用佈局壓縮器爲我創建實例。

佈局文件:styled_textview.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView ... style="@+style/MyStyle" ... /> 

代碼:

activity.getLayoutInflater().inflate(R.layout.styled_textview, <root_node>, true); 
+0

能否請你給我一個簡單的代碼示例,讓我更好地瞭解。 – Brahadeesh

+0

編輯答案.... –

+0

根節點的東西不起作用。所以我用空。有用。任何想法爲什麼/ – Brahadeesh

3

儘量擡高你的TextView。就像這樣:

佈局/ cell_row.xml

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/TitleRow"> 

YourActivity.java

...... 
LayoutInflater inflater = getLayoutInflater(); // called from activity 
...... 
DataCell[i] = inflater.inflate(R.layout.cell_row, null); 
// or inflater.inflate(R.layout.cell_row, root, false); where root is a parent view for created TexView 
DataCell[i].setText(data[i]); 
......