Да, конечно, это из-за setContentView(myview);
.
Метод setContentView
устанавливает пропущенное представление (или макет) в качестве видимого содержимого действия.
В вашемв случае, если новое настраиваемое представление заменяет ваш макет, который был завышен ранее.
Чтобы отобразить как элементы пользовательского интерфейса, так и настраиваемое представление, добавьте два других конструктора в свое настраиваемое представление и добавьте настраиваемое представление из XML, как вы бы добавилипростой TextView
.
Конструкторы пользовательского представления должны быть определены, как показано ниже:
public MyView(Context context) {
super(context);
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
Или вы можете взять ссылку на некоторый макет, такой как LinearLayout
и т. д., и добавитьэкземпляр пользовательского представления с использованием layout.addView(myView);