阅读android风格的xml

时间:2010-11-27 15:09:08

标签: android xml xml-parsing

我有自定义样式,我想应用于我的观点。 我无法以编程方式创建我的视图,而不是通过XML创建视图,因为它是一个动态内容量(相同的视图可以出现X次,但不超过10次,所以我不想要列表)。

如果我可以获得该样式的XmlPullParser,我可以轻松使用AttributeSet attrs = Xml.asAttributeSet(parser);  并将其传递给View的C'tor。问题是获取XmlPullParser。 getresources()。getX没有getStyle()方法。也许我只是采取了错误的方法。 有没有人知道如何将这种风格应用于程序化的观点?

10倍。

好的,我尝试了第三种C'tpr参数方法:

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TextView tv = new TextView(this, null, R.style.my_style_2);
    tv.setText("this should be green!");
    setContentView(tv);
}

和风格:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="my_style_2">
        <item name="android:textColor">#FF00FF00</item>
        <item name="android:textSize">20sp</item>
    </style>
</resources>

我没有得到大的绿色文字。我得到默认大小灰色文本...

2 个答案:

答案 0 :(得分:2)

确定。其他方法是以编程方式创建View并在构造函数中使用style参数:

例如:TextView myTextView = new TextView(context,null,R.style.myCustomStyle);

答案 1 :(得分:1)

我希望,这个答案可以提供帮助:我会在一个单独的布局文件中定义可以出现x次的视图,并使用布局inflater动态/编程地添加它们。

示例代码:

LayoutInflater l = getLayoutInflater(); // is a method from activity class
for (int i = 0; i < x; i++)
{
    l.inflate(R.layout.custom_list_view_entry,  parentView);
}
res / layout文件夹中的

custom_list_view_entry.xml定义列表条目布局,并包含所有样式信息或更复杂的视图层次结构。 parentView是视图,它是列表条目的容器。