将视图转换为扩展视图的视图

时间:2014-12-31 15:13:30

标签: android android-layout

是否有可能在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;。我知道我可以从膨胀的视图中获取布局参数,将其删除然后添加带有该参数的新参数。

1 个答案:

答案 0 :(得分:1)

不,您在XML中使用的完全限定名称的类由系统实例化,因此必须是具体类。