Cambiar el contenido de framelayout en el botón de clic

Derecho tengo un diseño principal definido, que tiene un marco, una tabla en ese marco y luego en la parte inferior una vista de desplazamiento horizontal con una carga de botones. Cuando se hace clic en el botón, el contenido del marco debe cambiarse a una nueva tabla, al igual que cuando se elige una pestaña diferente en el tutorial de diseño de tabulación (no se utiliza un diseño de pestaña porque tengo muchos botones que no caben en la pantalla a menos que Desplazado

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp"> <FrameLayout android:id="@+id/tabcontent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.2" android:padding="5dp" android:background="@color/white"> <TableLayout android:id="@+id/Jobs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="*"> <TableRow android:id="@+id/JobRow" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/JobID" android:layout_column="1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView> <TextView android:id="@+id/JobStatus" android:layout_column="2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView> <TextView android:id="@+id/Customer" android:layout_column="3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView> <TextView android:id="@+id/Department" android:layout_column="4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView> <TextView android:id="@+id/DocType" android:layout_column="5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView> </TableRow> </TableLayout> </FrameLayout> <HorizontalScrollView android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_gravity="bottom" android:scrollbars="none"> <LinearLayout android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="fill_parent"> <ImageButton android:id="@+id/batching" android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/batching"></ImageButton> <ImageButton android:id="@+id/merging" android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/merging"></ImageButton> <ImageButton android:id="@+id/processing" android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> <ImageButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/processing"></ImageButton> </LinearLayout> </HorizontalScrollView> </LinearLayout> 

Ahora para las pestañas cambiar el contenido de la pestaña parecía bastante fácil como tal:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, ArtistsActivity.class); // Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabSpec("artists").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)) .setContent(intent); tabHost.addTab(spec); // Do the same for the other tabs intent = new Intent().setClass(this, AlbumsActivity.class); spec = tabHost.newTabSpec("albums").setIndicator("Albums", res.getDrawable(R.drawable.ic_tab_albums)) .setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, SongsActivity.class); spec = tabHost.newTabSpec("songs").setIndicator("Songs", res.getDrawable(R.drawable.ic_tab_songs)) .setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(2); } 

¿Cómo puedo hacer algo similar con el contenido del marco y los botones? Yo estaba pensando en algo en la línea de

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // Resource object to get Drawables final Intent batchingIntent, mergingIntent, processingIntent; // Create an Intent to launch an Activity for the tab (to be reused) final Button batchButton = (Button) findViewById(R.id.batching); batchingIntent = new Intent().setClass(this, BatchingActivity.class); batchButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { // Perform action on clicks FrameLayout frame = (FrameLayout) findViewById(R.id.tabcontent); frame.setContent(batchingIntent) // doesn't exist obviously } }); 

One Solution collect form web for “Cambiar el contenido de framelayout en el botón de clic”

No puede anidar una actividad dentro de FrameLayout. Lo que puede hacer es cambiar sus puntos de vista por otros nuevos:

 FrameLayout frame = (FrameLayout) findViewById(R.id.tabcontent); frame.removeAllViews(); frame.addView(aNewViewOne); frame.addView(aNewViewTwo); ... 

En lugar de agregar vistas, también podría inflar un diseño en FrameLayout:

LayoutInflater.from(context).inflate(R.other_tab, frame, true);

  • Llamar ViewGroup # addView y ViewGroup # removeView causa NullPointerException
  • Layout_marginLeft funciona correctamente en Android API <11 cuando View in FrameLayout
  • Cómo usar el arrastrar correctamente de una vista en android
  • Uso de FrameLayout como fondo de pantalla en vivo
  • Cómo obtener una foto de video jugando dentro de FrameLayout en android?
  • Android - La altura de la estructura del marco no coincide con el diseño del coordinador
  • Obtener Fragmento dinámicamente adjunto a <FrameLayout>?
  • Conversión de FrameLayout como mapa de bits
  • GetHeight devuelve 0 para todos los objetos de IU de Android
  • Cómo deshabilitar detrás de ver haga clic en evento Framelayout
  • ImageView en cambio de orientación - Drawable ignora setBounds y vuelve al estado original
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.