Insertar componentes en la interfaz, cambio de ventana(activity), interfaz polimórfica
Hoy veremos:
- Como agregar componentes y manipularlos
- Como cambiar de activities
- Como reducir el número de activities necesarios
En la parte de código básico:
- Sentencia if(Java)
- Sentencia switch(Java)
Agregamos una interfaz básica, o creamos un nuevo proyecto y la creamos.
Ya tenemos la interfaz gráfica básica.
Agregar componentes visuales
Esto es muy importante, ya que si agregamos demasiadas interfaces, o lo hacemos mal, nuestro proyecto sera demasiado pesado, o difícil de mantener.
Estamos en el código Java
Cambiamos al XML que es nuestra interfaz gráfica.
Presionamos en "design", y veremos un preview
Arrastramos un botón
Vemos que su Id es "button".
Ahora manipularemos su código...
Para eso vamos al código Java.
En las lineas de "import" agregamos:
import android.widget.Button;
Despues de crear la clase definimos un botón.
public class MainActivity extends AppCompatActivity { Button button;Despues de que se haya creado la interfaz, importamos el boton del XML.@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button); }button es el boton en el Java.(Button) es el casteo, "castear", convertir un tipo a otro, en este caso estamos importando un objeto.findViewById encontrara el elemento que queremos, y R.id.id se lo entregara.R contiene los recursos que estamos usando.Hora de mostrar que si lo importamos.Es importante tener habilitado el modo de desarrollador.@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button);//manipulamos el texto, esto nos servirá en lo que sigue, esto es un comentario button.setText("importado");}Corremos nuestra aplicación, conectamos el celular o tablet.El ADB debe mostrar el movil o el emulador.Tomara un poco compilar el proyecto. Posteriormente les explicare como comprimir elproyecto para enviarlo por Internet o subirlo a su disco en la nube.Aqui una capturaSe ve oscuro por una máscara.Cambio de ventana
Agregamos otro ACTIVITY:Clic derecho sobre app>new>Activity>Empty Activityya vimos los pasos que siguen.Agrego un boton y le llamo btnReceptorVolvemos al primer código JavaMainActivity.javaagregamos a los imports:import android.view.View; import android.widget.Button;Vamos a escuchar el botónDespués del método onCreate agregamos un método para escuchar.View.OnClickListener miEscuchaClick=new View.OnClickListener(){//La pantalla es táctil, o tiene entradas, la vista//servira para escuchar sus elementospublic void onClick(View v){//vemos que algo fue clickeado, presionado, y escuchamos la vistaswitch (v.getId()){//Tenemos la sentencia switch, que nos permite comparar los valores//De acuerdo a lo recibido por ella hara algo u otra acción //v es nuestra vista, Id es el identificador de un elemento, en este caso el que fue presionado case R.id.button: //si el botón fue presionado hara el código que sigue break; //aquí cerramos ese bloque del switch } } };Agregamos un método para cambiar de Activity:public void cambiar(View v){ Intent i=new Intent(this, receptor.class); startActivity(i); }Llamamos al método desde el listenercase R.id.button: cambiar(v); break;Debería funcionar.Cambiamos el texto del botón del segundo activity.Lo hacemos desde la propiedad android:textqueda entre comillas.<Button android:text="Cambiado"Debería cambiarProbamos la aplicación: la abrimos y presionamos el boton, debería cambiar de activity.Ya probaron la aplicación. Vamos a mostrar que un botón puede cambiar de acción,de acuerdo a un mensaje que le enviemos.GUI polimórfica, envío de mensajes entre GUI
Vamos al XML de la primera ventana y agregamos otro botón:Vamos al java.Declaramos los dos botones.Aquí el proyecto:public class MainActivity extends AppCompatActivity { Button btnGuardar; Button btnEditar;Quitamos el primer botón, pero paso a paso, si no vamos a destruir el código.
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnGuardar=(Button)findViewById(R.id.guardar); btnEditar=(Button)findViewById(R.id.editar); btnGuardar.setOnClickListener(miEscuchaClick); btnEditar.setOnClickListener(miEscuchaClick); }Editamos el listener agregando los id's de los botones.View.OnClickListener miEscuchaClick=new View.OnClickListener(){ public void onClick(View v){ switch (v.getId()){ // case R.id.button://cambiar(v);// break; case R.id.guardar: break; case R.id.editar: break; } } };Creamos una variable al principio de la clase que guardara el mensaje que pasaremos.case R.id.guardar: funcion="guardar"; break; case R.id.editar: funcion="editar"; break;Usamos el metodo "putExtra", permite pasar variables a otros activities.public void cambiar(View v, String mensaje){ Intent i=new Intent(this, receptor.class); i.putExtra("mensaje", mensaje); startActivity(i); }Agregamos la función cambiar a los listeners:case R.id.guardar: funcion="guardar"; cambiar(v, funcion); break; case R.id.editar: funcion="editar"; cambiar(v, funcion); break;Vamos al la GUI receptora.
Recibimos el mensaje:
Importamos la clase boton, extraemos el mensaje y lo colocamos en una variable local.
Cambiamos el texto del mensaje por el mensaje recibido.
import android.widget.Button; public class receptor extends AppCompatActivity { public String funcion; Button btnFuncion; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_receptor); Bundle bundle=getIntent().getExtras(); funcion=bundle.getString("funcion"); btnFuncion=(Button)findViewById(R.id.btnReceptor); btnFuncion.setText(funcion); }Agregamos un listener para los clicks:
View.OnClickListener miEscuchaClick=new View.OnClickListener(){ public void onClick(View v){ switch (v.getId()){ case R.id.btnReceptor: switch(funcion){ case "guardar": btnFuncion.setText("Presionaste guardar"); break; case "editar": btnFuncion.setText("Presionaste editar"); break; } break; // //otro botón // funcion="editar"; //cambiar(v, funcion); //break; } } };Vemos un switch anidado que hara una u otra opción, de acuerdo al mensaje enviado.Llamamos al listener desde el boton en el método onCreate.btnFuncion.setOnClickListener(miEscuchaClick);Ya debería funcionar. Aquí terminamos esta sección. Muchas gracias por tu visita, dona o comparte.https://drive.google.com/file/d/0B0zrGMhduaXIcU1nVmJkeGNXVTQ/view?usp=sharing













No hay comentarios.:
Publicar un comentario
Por favor:
Se decente, recuerda que las personas vienen por ayuda y por código bueno y útil.
No seas grosero.
Especifica bien tu problema, para un diagnóstico adecuado, tanto medicina y programación requieren los síntomas.