android - 在代码中为 textview 设置样式,android

标签 android xml android-layout styles textview

我的 Activity 中有以下代码:

......  
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 用于属性集这一事实存在一些问题。但是经过很长时间的搜索,我无法找到一个完美的例子来说明如何去做。我希望有人能一劳永逸地向我澄清这一点。

最佳答案

尝试膨胀你的 TextView。像这样:

layout/cell_row.xml

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

你的 Activity .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]);
......

关于android - 在代码中为 textview 设置样式,android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799472/

相关文章:

c# - 以 Base64 编码写入 XML

java - 如何使用 androidx 从 SeekBarPreference 获取 OnPreferenceChanged 事件

android - 如何为不同宽高比的屏幕尺寸布局按钮

android - 带有两个 RecyclerView 的 CoordinatorLayout

c - regexec在c中获取xml标签的值

java - 自定义 ListAdapter 的 Hashmap 中出现空指针异常?

java - 如何通过 XPATH 更新 Java 中需要不同值的多个节点?

Android,ImageView 优于 ImageView

android - 在 Android 中禁用通知

android - OnClickListener 只监听第二次