我想以编程方式在不同的活动中多次创建TextView。我不是每次都设置属性,而是想我可以将属性保存在xml文件中,每次将TextView添加到活动时都可以使用它。根据我的阅读,我认为使用以下代码将起作用。
XmlPullParser parser = resources.getXml();
AttributeSet attributes = Xml.asAttributeSet(parser);
TextView textView = new TextView(this, attributes);
我的qustion是一种有效的方法吗?我的第二个问题是xml属性应该保存在哪里以及如何保存?在布局文件夹或值?它会有所作为吗?
谢谢
答案 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