2010-02-04 13 views
24

En mi vista principal, que tengo:Cómo conectar una vista de diseño con una actividad

public class PlayersActivity extends Activity { 
    ViewFlipper flipper; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.playercontainer); 
     flipper = (ViewFlipper) findViewById(R.id.flipper); 
    } 
} 

con este punto de vista:

<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/flipper" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <include android:id="@+id/first" layout="@layout/first" /> 
    <include android:id="@+id/second" layout="@layout/playerdetailsview" /> 
</ViewFlipper> 

Se muestra la primera vista correctamente pero yo quiero que sea conectado a una clase Java así que creé una clase FirstActivity donde puedo controlar todos mis componentes en la primera vista , pero ¿cómo puedo adjuntar el primer formato .xml con la clase Java de FirstActivity?

+0

PlayersActivity ya es tu clase java para controlar sus componentes. ¿Cómo se diferencia la clase FirstActivity de PlayersActivity? – RickNotFred

+0

para dividir mi funcionalidad en diferentes clases, así que puedo reutilizar ese diseño específico en otres viewflippers –

Respuesta

39

Digamos que su nuevo archivo XML es :

  1. Deja archivo en el directorio de res/layout.
  2. En su nueva clase use setContentView(R.layout.foo);
  3. Especifique su nueva clase en su manifest file.

Consulte también el tema en declaring layout.

+1

El paso 3 asume que tu clase es una actividad. – RickNotFred

+1

sí agregué en el nodo de la aplicación (y seguí los otros pasos para) pero todavía no llama a la clase ¿la defino directamente en el manifiesto? –

+0

Debe especificar el nombre completo. Suponiendo que la clase reside en el mismo paquete que el manifiesto, se puede acortar mediante la especificación como (tenga en cuenta los principales'.") – RickNotFred

6

1) Cree un archivo xml (digamos).
2) Coloque en el directorio res/layout.
3) Edite y coloque un código de diseño de Android y guárdelo. por ejemplo,

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" > 
    <ViewFlipper android:id="@+id/viewFlipper1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"></ViewFlipper> 
</LinearLayout> 

4) En la nueva clase de actividad puso

setContentView(R.layout.foo); 

Para crear una actividad see this answer

supongo que el problema con el archivo XML es que no se ha especificado ninguna disposición para la actividad.

0

Cambie el nombre de FirstActivity a firstactivity. El diseño no acepta las mayúsculas, me enfrenté al mismo problema.

3

No es tan difícil de vincular 2 diseños acaba de hacer:

@Override 
    public void onClick(View args0) { 
    setContentView(R.layout.aardelayout); 
} 
Cuestiones relacionadas