Android: как приводить наследника от Floating Action Button

185
01 июня 2017, 07:31

Хочу унаследоваться от 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
Answer 1

При создании кастомного view в layout необходимо указать класс вместе с пакетом. В Вашем случае будет примерно так:

<com.example.MainViewFAB
    ... />

И далее:

MainViewFAB fab = (MainViewFAB) findViewById(R.id.mainViewTab);
Answer 2

Нашел причину. В конструкторе есть только контекст, а надо ещё AttributeSet.

public MainViewFAB(Context context, AttributeSet attrs) {
   super(context, attrs);
}

Разметка и приведение типов - как указал @post_zeew в другом ответе.

READ ALSO
Разграничение доступа к записям в одной БД (таблице)

Разграничение доступа к записям в одной БД (таблице)

Есть БД с набором таблиц, записи в которые создаются разными пользователямиВозможно ли реализовать доступ к данным так, чтобы каждый пользователь...

264
Летающий fab в нижнем правом углу

Летающий fab в нижнем правом углу

Как сделать чтобы float action button летал в нижнем правом углу?

168
Как изымать List c помощью Hibernate?

Как изымать List c помощью Hibernate?

Что неправильно? Подскажите, пожалуйста, не могу найти ошибку

204
Как работать с неизвестной структурой JSON?

Как работать с неизвестной структурой JSON?

есть ли возможность работать с заранее неизвестной структурой JSON?

275