Хочу унаследоваться от Floating Action Button в отдельный класс, чтобы определить в этом классе всё, что связано в этой кнопкой.
public class MainViewFAB extends FloatingActionButton {
public MainViewFAB(Context context) {
super(context);
}
}
Но как правильно привести тип при создании экземпляра объекта?
При таком приведении:
fab = (MainViewFAB) findViewById(R.id.mainViewTab);
среда разработки ошибок не выдаёт, но при запуске возникает исключение
java.lang.ClassCastException: android.support.design.widget.FloatingActionButton cannot be cast to com.example.MainViewFAB
Если привести
fab = (FloatingActionButton) findViewById(R.id.mainViewTab);
то среда выдаст
Incompatible Types; Requierd: MainViewFAB, Found: FloatingActionButton
Если же ничего не приводить, то среда выдаст
Incompatible Types; Requierd: MainViewFAB, Found: View
При создании кастомного view
в layout
необходимо указать класс вместе с пакетом. В Вашем случае будет примерно так:
<com.example.MainViewFAB
... />
И далее:
MainViewFAB fab = (MainViewFAB) findViewById(R.id.mainViewTab);
Нашел причину. В конструкторе есть только контекст, а надо ещё AttributeSet
.
public MainViewFAB(Context context, AttributeSet attrs) {
super(context, attrs);
}
Разметка и приведение типов - как указал @post_zeew в другом ответе.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть БД с набором таблиц, записи в которые создаются разными пользователямиВозможно ли реализовать доступ к данным так, чтобы каждый пользователь...
Как сделать чтобы float action button летал в нижнем правом углу?
Что неправильно? Подскажите, пожалуйста, не могу найти ошибку
есть ли возможность работать с заранее неизвестной структурой JSON?