在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设置为number。

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。可能吗 ?

基本上我这样做是因为我需要“ layoutParams”。我知道我可以从膨胀视图中获取布局参数,将其删除,然后使用该参数添加新的布局参数。

最佳答案

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

07-25 22:06