установка стиля для просмотра текста в коде, Android - PullRequest
1 голос
/ 18 октября 2011

У меня есть следующий код в моей деятельности:

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

Вот мой файл style.xml, который находится в папке res >> values:

<?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), он работает нормально.Я знаю, что есть некоторая проблема с тем фактом, что я использую нуль для набора атрибутов.Но после долгих поисков я не могу найти идеальный пример того, как это сделать.Я надеюсь, что кто-то сможет разъяснить мне это раз и навсегда.

Ответы [ 2 ]

3 голосов
/ 18 октября 2011

Попробуйте надуть ваш TextView.Как это:

layout / 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]);
......
2 голосов
/ 18 октября 2011

Я обычно заканчиваю тем, что создаю простой файл макета, содержащий только тот элемент, который я хочу создать (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);
...