titulo studio personalizar nombre icono editar color cambiar bar agregar activity actionbar android android-layout xml-layout

studio - personalizar activity android



¿Cómo puedo cambiar el diseño XML incluido a otro diseño en código java? (3)

¿Ha intentado obtener la instancia de la vista actual del xml que ha incluido el otro xml y usar findViewById() ? View v es el primer diseño y en contra de esta vista, usa .findViewById()

tengo un problema. Desarrollo aplicaciones de Android.

Incluí el segundo diseño al primer diseño como este:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="300dp" android:layout_height="match_parent" android:layout_gravity="clip_horizontal" android:layout_alignParentLeft="true" android:id="@+id/rlMenu" > <Button android:id="@+id/bMusteriler" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Musteriler" android:textSize="45dp" android:layout_alignParentLeft="true" /> </RelativeLayout> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_toRightOf="@id/rlEkranlar" > <include android:id="@+id/include1" android:layout_width="fill_parent" android:layout_height="wrap_content" layout="@layout/ikinci" /> </RelativeLayout> </RelativeLayout>

El problema es ¿cómo puedo cambiar el diseño incluido al hacer clic en un botón (en código java)?

Lo siento por mi ingles. Gracias.


Hay dos formas de cambiar diseños en el código:

A. Cambiar la visibilidad. Incluya diferentes diseños en su xml:

<include android:id="@+id/id1" android:visibility="visible"/> <include android:id="@+id/id2" android:visibility="gone"/>

y en el código usa esto:

findViewById(R.id.id1).setVisibility(View.GONE); findViewById(R.id.id2).setVisibility(View.VISIBLE);

B. Agregar manualmente los niños. Use el mismo xml que usa ahora y agregue el código que puede agregar o eliminar hijos:

yourRelativeLayout.removeAllViews(); yourRelativeLayout.addView(viewToInclude);

Fuera de contexto:

No necesitas escribir xmlns:android param en RelativeLayout. Sólo para la etiqueta más superior en el archivo de diseño.


Sugiero ViewFlipper dentro de RelativeLayout de sus declaraciones de include . Prueba de esta manera:

<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/vf" android:layout_width="fill_parent" android:layout_height="wrap_content" > <include android:id="@+id/include1" layout="@layout/ikinci" /> <include android:id="@+id/map" layout="@layout/third_layout" /> </ViewFlipper>

Acceda a ViewFlipper como se muestra abajo. Inicialmente se emite el primer diseño:

ViewFlipper vf = (ViewFlipper)findViewById(R.id.vf);

Para el botón onClickListener:

button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub vf.setDisplayedChild(1); } });