LayoutInflater.from(context).inflate(R.layout.okcancelbar, this, true);
эта строка раздувает "this" с помощью макета R.layout.okcancelbar
((Button) findViewById(R.id.okcancelbar_ok)).setText(text)
это означает, что в макете okcancelbar есть кнопка с идентификатором "okcancelbar_ok" (завышено ранее) Далеемы присвоили ему текст "Ok"
((Button) findViewById(R.id.okcancelbar_cancel)).setText(text);
, как указано выше, в макете okcancelbar есть кнопка с идентификатором "okcancelbar_cancel"
Итак, этот код выполняет: 1) надутьпросмотреть R.layout.okcancelbar 2) получить кнопку (объявленную в предыдущем макете) с идентификатором «okcancelbar_ok» и установить текст «Ok» 3) то же самое с кнопкой «okcancelbar_cancel» и текстом «Cancel»
Макет "layout / okcancelbar.xml" должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<include
layout="@layout/okcancelbar_button"
android:id="@+id/okcancelbar_ok" />
<include
layout="@layout/okcancelbar_button"
android:id="@+id/okcancelbar_cancel" />
</merge>
Также должен быть файл "values / attrs.xml", который выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="OkCancelBar">
<attr name="okLabel" format="string"/>
<attr name="cancelLabel" format="string"/>
</declare-styleable>
</resources>
Инаконец, "layout / okcancelbar_button" должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</Button>
Надеюсь, это поможет