2011-10-17 18 views
1

私は私の活動に次のコードを持っている:設定のスタイル、アンドロイド

<?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,R.style.TitleRow); 
DataCell[i].setText(data[i]); 
...... 

は解像度である私のstyle.xmlファイルですが>>フォルダ値

値は表示されません。 しかし、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

ルートノードの問題が機能していません。だから私はnullを使用しました。できます。任意のアイデア理由/ – 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]); 
...... 
関連する問題