2012-07-29 15 views
5

Estoy enseñando a algunos colegas Java con la intención de entrar en la programación de juegos de Android. ¿Hay alguna forma de mostrar un cuadro en la pantalla, y cuando lo tocas cambia de color, sin crear una Actividad (esto está en Eclipse) y sumergiéndote en el mundo feo de XML?Aplicación simple de Android sin XML

+0

¿Por qué? XML es fácil. ¡Es divertido! – Ahmad

+1

Bueno, es fácil para mí, y es fácil para ti, pero le estoy enseñando a un par de (no expertos en informática con conocimientos técnicos) a quienes no solo les resulta difícil, sino horriblemente feo. –

+3

tarde o temprano, empezarás a golpear paredes de ladrillo invisibles si tratas con Android como Swing. – Shark

Respuesta

3

Aquí se muestra un ejemplo para la creación de programación de interfaz de usuario en Android como usted pidió

public class MyActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Button changeColor = new Button(this); 
     changeColor.setText("Color"); 
     changeColor.setLayoutParams(new ViewGroup.LayoutParams(
       ViewGroup.LayoutParams.WRAP_CONTENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT)); 

     changeColor.setOnClickListener(new View.OnClickListener() { 
      int[] colors = {Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW}; 
      @Override 
      public void onClick(View view) { 
       final Random random = new Random(); 
       view.setBackgroundColor(colors[random.nextInt(colors.length - 1) + 1]); 
      } 
     }); 
     setContentView(changeColor); 
    } 

Sin embargo, animo encarecidamente el uso de XML para sus diseños. Es mucho más fácil y rápido usar XML una vez que lo entiende, por lo que here es un tutorial para usted.

1

Puede crear widgets programáticamente y agregarlos a un diseño que configure como la vista de contenido en onCreate. Algo a lo largo de las líneas de esto funcionaría:

RelativeLayout layout = new RelativeLayout(this); 
Button btnChangeColour = new Button(this); 
btnChangeColour.setText("Change Colour"); 
btnChangeColour.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     v.setBackgroundColor(...); 
    } 
}); 
layout.addView(btnChangeColour); 
setContentView(layout); 
1

Oigo lo que estás diciendo, y sí, aunque estoy de acuerdo en que XML es aburrido cuando solo quieres codificar juegos en Android, puedo decir que XML es un mal necesario de Android. Al menos ponga ViewStubs en el XML e infle en el código más adelante.

O acostúmbrate a invocar muchas llamadas a "nuevos modelos de diseño" si quieres formatearlas correctamente.

Pero tu clase realmente necesita sobrescribir la actividad si quieres que funcione en Android.

Cuestiones relacionadas