2012-01-05 16 views
6

Soy un novato en Android.Desarrollo de desarrollo de diseño en Android

Quiero desarrollar una aplicación en la que pueda cambiar las pantallas según el botón seleccionado. La aplicación podría tener más de 20 pantallas con botones o formulario de entrada. Desde la pantalla 1 tengo que cambiar la pantalla a otra pantalla. Pensé en FrameLayout donde puedo cambiar a los niños.

No estoy recibiendo una forma de comenzar. Como creé una Actividad. ¿Cada pantalla debería superar la clase para poder agregarla al diseño? ¿Cómo puedo hacer que mi primera pantalla sea visible al inicio?

Todas estas parecen ser preguntas simples y tontas, pero realmente no puedo obtener un punto de partida para lo mismo. Cualquier ayuda es apreciativa para ayudarme a lograr mi objetivo.

Actualizado:

@Ghost, a partir de su solución de 1 pregunta más arised en mi mente. Para pantallas en las que solo tengo que mostrar botones en formato específico, agregué un GridView y un ButtonAdapter con la ayuda de this site.

Si agrego clickListener solo en ButtonAdapter, ¿cómo puedo pasar los parámetros a setIntent (FooFooActivity.this ....) ????? Tengo Conext en ButtonAdapter. Puedo encasillarlo en FooFooActivity y puedo trabajar en eso. Puedo dar ifs en ButtonAdapter en onclick() para hacer que vaya a la pantalla correcta. Pero el conjunto no funciona como yo digo o algo por el estilo. Si puede funcionar, entonces, para muchas pantallas, mi única clase GridView y solo la clase ButtonAdapter pueden hacer todo el trabajo.

NUEVO updations sobre los ensayos:

@Ghost, me trataron y se encontró que la setIntent anterior (FooFooActivity.this ....) en ButtonAdapter doesnot trabajo - como en ButtonAdapter no lo puedo encontrar posibilidades de FooFooActivity. esta.

  • En mi FooFooActivity, no puedo configurar onclikcListeners para los botones agregados a través de ButtonAdapter. Intenté con gridview.getChild (i), pero simplemente no se establece de ninguna manera.
  • También hice otro linearlayout xml (buttonspage.xml) con 6 botones y una DataActivity que lo usa. Eso funciona perfectamente y al hacer clic en el botón también se muestra FooFooActivity.
  • Para utilizar el mismo diseño de buttonpage.xml en actividades múltiples, establezco el contenido de FooFooActivity como botones y selecciono su botón para hacer clic en oyentes. Para 1 botón configuro para salir de la aplicación y para otro botón para mostrar DataActivity.

  • Así que con esto tengo actividad 2, FooFoo que muestra DataActivity/Exit & DataActivity que regresa a FooFoo. Es un ciclo que comienza & termina con FoofooActivity. Si hago clic en "Salir" al principio, se cierra. Pero si hago clic en "Salir" después de mostrar DataActivity, simplemente no se cierra y muestra solo DataActivity. ¿Es que no puedo usar el mismo diseño en actividades múltiples? ¿O puedo estar equivocado en algún lugar (lo dudo)? Mismo diseño de botón que tengo que usar en 10-12 páginas, excepto con texto diferente en el botón y eventos. Así que estaba pensando en Escribir una vez Usar varias veces. También llegó a cambiar los estilos de botón dinámicamente de todos estos botones de página.

Gracias

Respuesta

12

En cuanto a su primera pantalla se refiere, que depende de la actividad, y se ejecuta directamente cuando se ejecuta el proyecto. Por ejemplo, si tiene su proyecto con el nombre FooFoo, entonces al compilar/construir su proyecto de Android, android nombra la primera clase como FooFooActivity (es decir, si ha permitido que Android cree una actividad) . Por supuesto, puede cambiarle el nombre a allí mismo. Entonces, una vez que compile su UI en el archivo predeterminado main.xml y regrese a su archivo java FooFooActivity, hay una línea particular dentro del método onCreate. Esa línea es setContentView(R.layout.main); Esta línea establece la vista de los contenidos presente dentro de ese archivo main.xml. Cuando ejecuta el programa, y ​​cuando se inicia el emulador, el emulador presenta la vista de su main.xml si su proyecto no contiene compilación o errores de tiempo de ejecución.

Ahora, llegando a sus más de 20 diseños: Puede tenerlos todos en su carpeta de diseño. Asigne al menos un button en cada pantalla que lo lleve a una pantalla, diga "XYZ" y supongamos que el nombre de clase es "ABC". Supongamos también que su clase FooFooActivity lo lleva a esta clase ABC. Los siguientes pasos le guiarán por cómo hacer la parte de navegación.

I. Dentro del método onCreate de su clase FooFooActivity, ya tiene el setContentView. Ahora, después de esa línea, añadir las siguientes líneas:

Button button = (Button)findViewById(R.id.button1); 
    button.setOnClickListener(new View.OnClickListener() 
      { 
       public void onClick(View v) 
       { 
        Intent intent = new Intent(FooFooActivity.this, ABC.class); 
        startActivity(intent); 
       } 
      }); 

Por Passing an Intent puede guiar a mismo/a su usuario a la pantalla/actividad deseada.

II. Tenga en cuenta que en su clase ABC, implique el mismo método onCreate y coloque su diseño XYZ dentro del setContentView de la siguiente manera: setContentView(R.layout.XYZ);

III. En el archivo de manifiesto, después de su

<activity 
      android:label="@string/app_name" 
      android:name=".FooFooActivity" > 


      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

agregar lo siguiente:

<activity 
      android:name=".ABC" 
      android:label="@string/app_name" 
      > 
     </activity> 

Una vez que haya terminado con estos pasos, ejecutar el programa.

Tenga en cuenta que esto es solo para mostrar 2 pantallas a su usuario. Debes repetirlo más de 20 veces. No sé/veo de otra manera.

En cuanto a sus diseños, le sugiero que se quede con Relative Layout o Linear Layout. En general, la mayoría de los diseños "normales" se pueden lograr mediante cualquiera de estos o su combinación. Si quiere más, siempre puede encontrar ayuda en Android Developers' Site o Stack Overflow. De todos modos, hay muchas otras cosas que no he podido explicar aquí, pero tengo la intención de hacerlo a su debido tiempo. Siempre puede consultar grandes libros como Hello Android, Programming Android y Learning Android.Incluso CommonsWare - Mark Murphy tiene su conjunto de libros que son bastante populares. Siempre puedes comenzar con cualquiera de ellos.

Espero que esto ayude. ¡Todo lo mejor!

EDITAR SU SIGUIENTE Updation:

Por supuesto que va a devolver la última actividad, ya que supongo que has el siguiente fragmento de código con el botón de salida:

Button exit = (Button)findViewById(R.id.button2); 
     exit.setOnClickListener(new OnClickListener() 
     { 

      public void onClick(View v) 
      { 
       finish(); 

      } 
     }); 

Así que, básicamente, lo lo que estás haciendo es terminar ese ABC/actividad principal en particular. Eso significa que Android te llevará a la pantalla/actividad previa. Eso es todo. Si mantiene el mismo diseño y lo planifica para utilizarlo en diferentes actividades, todo se volverá confuso. Con solo 2 pantallas/actividades, es bastante confuso para ti desde ahora. Imagina lo que podría pasar con 20+. Bueno, el diseño finalmente se lo dejamos a usted. Esto es todo lo que puedo decir.

+0

@Ghost, gracias por la explicación. Entonces, básicamente, lo que estás diciendo es que debería tener una clase de Actividad para cada pantalla de Diseño que quiero (20+). Y para cada botón en la Actividad, comencé como setIntent(). Espero haber conseguido esto mucho correcto. – Tvd

+0

@Ghost, el único problema de arranque que tengo - mi main.xml permanece como está. Quiero comenzar con el diseño "mainpage", es decir, MainActivity de mi FooFooActivity original. La razón para hacer esto es que tendré que configurar/mostrar MainActivity, es decir, mainpage también. Si agrego ese contenido en main.xml, ¿cómo puedo mostrar esa pantalla de la clase ABC? – Tvd

+1

Sí, eso es correcto. Pero no configura intenciones en cada botón de su diseño. Ejemplo: si tiene un botón cancelar que generalmente permite al usuario salir de esa actividad en particular, entonces pasar un intento no tiene sentido. Solo aprueba un botón cuando necesita ese botón para guiar a los usuarios a diferentes pantallas/actividades. Y sí, acepte la respuesta si lo ha ayudado/lo ha ayudado ... :) – Ghost

Cuestiones relacionadas