XmlPullParser和AttributeSet

时间:2015-09-25 14:27:20

标签: android

我想以编程方式在不同的活动中多次创建TextView。我不是每次都设置属性,而是想我可以将属性保存在xml文件中,每次将TextView添加到活动时都可以使用它。根据我的阅读,我认为使用以下代码将起作用。

XmlPullParser parser = resources.getXml();
AttributeSet attributes = Xml.asAttributeSet(parser);
TextView textView = new TextView(this, attributes);

我的qustion是一种有效的方法吗?我的第二个问题是xml属性应该保存在哪里以及如何保存?在布局文件夹或值?它会有所作为吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用多态,例如,您可以创建TextView类的许多子类,并在您想要的地方实例化相应的子类:

public class CustomTextView extends TextView {

    public CustomTextView(Context context) {
        super(context);
        init();
    }

    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomTextView(Context context, AttributeSet attrs, int defStyle)  {
        super(context, attrs, defStyle);
        init();
    }

    private void init() {
        // your custom attributes
        // for example
        setTextColor(Color.BLACK);
    }
}

以这种方式实例化它:

TextView textView = new CustomTextView(this);

您可以从xml布局中扩充视图 - take a look