Próbuję utworzyć widok złożony, dzięki czemu można ustawić atrybuty w kodzie XML i przekazać je do elementów podrzędnych w widoku złożonym. W poniższym kodzie chcę ustawić android:text
i przekazać go do EditText
.Przekazywanie atrybutów do widoku podrzędnego w widokach złożonych
Czy jest to możliwe bez konieczności ustawiania każdego atrybutu jako atrybutu niestandardowego?
Activity.xml:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<com.app.CustomLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="child_view_text" />
</FrameLayout>
custom_view.xml:
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.TextInputLayout>
</merge>
CustomView.java:
public ValidationTextInputLayout(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs);
}
private void init(Context context, AttributeSet attrs) {
View v = inflate(context, R.layout.custom_view, this);
mEditText = (EditText) v.findViewById(R.id.editText);
mTextInputLayout = (TextInputLayout) findViewById(R.id.textInputLayout);
}
To nie rozwiąże problemu. W niektórych przypadkach muszę przekazać różne niestandardowe atrybuty, np. "App: box_checked = true". – soundsofpolaris