Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Pasar atributos a la vista secundaria en vistas compuestas

Estoy tratando de hacer una vista compuesta, donde puedo establecer atributos en xml y hacer que se pasen a los niños en la vista compuesta. En el siguiente código, quiero configurar el android:text y pasarlo al EditText .

¿Es esto posible sin tener que establecer cada atributo como un atributo personalizado?

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> 

CustomLayout.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); } 

  • Android v21 Theme.Appcompat acento de color se ignora, sin relleno en los diálogos
  • ¿Por qué no funcionan las bibliotecas de soporte de Android en mi proyecto?
  • Java.lang.RuntimeException: Nombre de animación desconocido: objectAnimator
  • Descarga de Manual de la Biblioteca de Soporte para Android
  • ¿Debo usar AppCompat v7 si minsdk es 14
  • Plugin Error: plugin necesario "Android Support" está deshabilitado
  • Configuración de Android Proguard para la v7 Support Library ActionBar
  • Agregar la biblioteca de soporte de Android v4 a intellij ide
  • 2 Solutions collect form web for “Pasar atributos a la vista secundaria en vistas compuestas”

    Creo que probablemente se puede poner el texto personalizado (es decir, child_view_text) en un tema, a continuación, utilizar el tema en el diseño de los padres o ver. Con esto, todas las vistas de los niños tendrán el atributo android: el texto se pasará con el texto personalizado.

    En su caso, podría verse como:

     <string name="child_view_text">Child View Text</string> <style name="CustomTheme" parent="Theme.AppCompat"> <item name="android:text">@string/child_view_text</item> </style> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/CustomTheme"/> <com.app.CustomLayout android:layout_width="match_parent" android:layout_height="wrap_content" /> </FrameLayout> 

    Com.app.CustomLayout extiende un Layout, lo que significa que no puede tomar android: text como un atributo. Necesitará crear un atributo personalizado para su clase CustomLayout y en dicha clase CustomLayout, inflar su custom_view (como lo está haciendo arriba), analizar los attrs para su cadena de texto personalizada y llamar a mEditText.setText (customLayoutText).

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.