是否有可能在xml资源布局中有一个基本视图,并在膨胀时将其转换为特定视图?
例如,有一个名为MyCustomView的自定义视图,用于扩展EditText,以及一些扩展MyCustomView的视图,如MyCustomViewNumber或MyCustomViewPassword,以及如下布局:
<com.example.MyCustomView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
.....>
</com.example.MyCustomView>
有可能在我将这个xml充气后,MyCustomView成为MyCustomViewNumber或MyCustomViewPassword之一(继承了这两个属性中的所有属性)。 MyCustomViewNumber将是一个EditText(更好地说是一个MyCustomView),它在构造函数方法中将setInputType设置为数字。
View baseView = LayoutInflater.from(getContext()).inflate(R.id.my_layout, container, false);
baseView = new MyCustomViewNumber(getContext()). //with this line I want that my view from the layout to take all attributes from MyCustomViewNumber.
扼要:
public class MyCustomView extends EditText
public class MyCustomViewNumber extends MyCustomView {
ctors > this.setInputType("number");
}
public class MyCustomViewPassword extends MyCustomView{ ctors > same as above }
膨胀MyCustomView。将膨胀视图设置为MyCustomViewNumber或MyCustomViewPassword。有可能吗?
基本上我这样做是因为我需要&#34; layoutParams&#34;。我知道我可以从膨胀的视图中获取布局参数,将其删除然后添加带有该参数的新参数。
答案 0 :(得分:1)
不,您在XML中使用的完全限定名称的类由系统实例化,因此必须是具体类。