Есть ли вероятность, что в мастере ресурсов 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 }
Inflate MyCustomView. Установите надутое представление в MyCustomViewNumber или MyCustomViewPassword. Является ли это возможным ?
В основном я делаю это, потому что мне нужны «layoutParams». Я знаю, что я мог бы получить параметры макета из завышенного представления, удалить его, а затем добавить новый с этими параметрами.
Я так не думаю. Вы не можете использовать базовый класс для расширенного класса. Возможно только обратное. Это будет убивать концепцию наследования. – Rohit5k2
Вы правы. Но я этого действительно не хочу. Я хочу взять атрибутSet из расширенного класса и передать его базовому классу. – TGeorge
Это то же самое, не так ли? Объект базового класса не может получить атрибуты своего расширенного класса следующим образом. Я чувствую, что вы должны найти другой способ добиться того, что вы пытаетесь сделать. – Rohit5k2