Люди часто говорят, что наследование, "-" отношения, но это может получить Вас в проблему. Наследование в C++ разделяет на две идеи: повторное использование кода и определяющие интерфейсы.
первое говорит, что "Мой класс похож на этот другой класс. Я просто запишу код для дельты между ними и снова использую другую реализацию от другого класса так, как я могу".
второе зависит от абстрактных базовых классов и является списком методов, которые класс обещает реализовать.
первое может быть очень удобным, но это может также вызвать проблемы обслуживания, если не преуспевший и таким образом, некоторые люди пойдут, говоря, что Вы никогда не должны делать этого. Большинство людей подчеркивает второе, использующее наследование для того, что другие языки явно называют интерфейсом.
android: layout_height = "wrap_content"
не имеет значения для виджетов с собственной прокруткой, таких как GridView
.
android: layout_alignParentTop = "true"
и android: layout_centerInParent = "true"
предназначены для RelativeLayout
, а не LinearLayout
.
Избавьтесь от своего android: layout_weight = "1.0"
, измените android: layout_height
на "fill_parent"
или определенную высоту, измените LinearLayout
на RelativeLayout
], и, возможно, вы будете в лучшей форме.