【问题标题】:setting style for textview in code, android在代码中设置文本视图的样式,android
【发布时间】:2011-12-09 14:41:55
【问题描述】:

我的活动中有以下代码:

......  
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) ,它工作正常。我知道我将 null 用于属性集这一事实存在一些问题。但是在搜索了很长时间之后,我无法找到一个完美的例子来说明如何做到这一点。我希望有人可以一劳永逸地向我澄清这一点。

【问题讨论】:

    标签: android xml android-layout styles textview


    【解决方案1】:

    我通常最终创建一个简单的布局文件,其中仅包含我要实例化的元素(在您的情况下为 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);
    

    【讨论】:

    • 能否给我一个简单的代码示例,以便我更好地理解。
    • 根节点的东西不工作。所以我用了null。有用。知道为什么/
    • root_node 是如果第三个参数为真,则创建的节点应附加到的容器。它总是对我有用。
    【解决方案2】:

    尝试为您的 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]);
    ......
    

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多