Я хотел бы определить свой собственный класс представления, который состоит из нескольких Textviews, ImageViews, ProgressViews в один DisplayClass с этими элементами.
Идея заключается в том, что можно многократно использовать DisplayClass в XML и легко получать/обновлять различные экземпляры DisplayClass.
В XML это будет выглядеть как один индивидуальный виджет, который используется несколько раз, например здесь...
<myDisplayClass
android:id="@+id/id1"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:leftText ="x1..."
android:midText = "y1.."
android:topText = "z1.."
...and other fields />
<myDisplayClass
android:id="@+id/id2"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:leftText ="x2..."
android:midText = "y2.."
android:topText = "z2.."
...and other fields />
<myDisplayClass
android:id="@+id/id3"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:leftText ="x3..."
android:midText = "y3.."
android:topText = "z3.."
...and other fields />
<myDisplayClass
android:id="@+id/id_n"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:leftText ="x.n.."
android:midText = "y.n."
android:topText = "z.n."
...and other fields />
Хотя он основан на одном макете display_class.xml, который определяет макет только один раз.
Большое спасибо за любые идеи, подсказки или доступные примеры/учебные пособия.
Чтобы повторно использовать обычный xml-код:
вы можете определить его в отдельном макете, например commonlayout.xml, который будет иметь линейный/относительный макет и т.д. как родительский со всеми видами, которые вы хотите там.
В любом коде xml вы хотите использовать этот макет, вы можете просто использовать
<include layout="@layout/commonlayout"/>
PS: Я не вижу необходимости определять myDisplayClass
в заданном вами вопросе, если вы просто хотите использовать EditText/TextViews/Widgets по умолчанию и т. Д.. или, может быть, вы можете объяснить это, если бы упомянутый ответ не был вами мы ищем..
EDIT: после запроса, указанного в комментариях:
View layout1 = findViewById(R.id.layout1);
TextView tv = (TextView)layout1.findViewById(R.id.commonTextView);
аналогично для другого текста во втором макете
TextView tv2 = (TextView)layout2.findViewById(R.id.commonTextView);