Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La aplicacin constar de dos pantallas, por un lado la pantalla principal que solicitar
un nombre al usuario y una segunda pantalla en la que se mostrar un mensaje
personalizado para el usuario. As de sencillo,
sencillo, pero aprenderemos muchos conceptos
concept
bsicos,
s, que para empezar no est mal.
Para entender mejor lo que queremos conseguir, sera algo tan sencillo como lo
siguiente:
Vamos a partir del proyecto de ejemplo que creamos en un apartado anterior, al que
casualmente llamamos App1.
App1
Lo primero que vamos a hacer es disear nuestra pantalla principal modificando la que
Eclipse nos ha creado por defecto. Aunque ya lo hemos comentado,
comentado, recordemos dnde y
cmo se define cada pantalla de la aplicacin. En Android, el diseo y la lgica
l de una
pantalla estn separados en dos ficheros distintos. Por un lado, en el
fichero /res/layout/activity_main.xml
/res/layout/activity_main.xm tendremos el diseo puramente visual de la
pantalla definido como fichero XML y por otro lado, en el
fichero /src/paquete.java/MainActivity.java,
/src/paquete.java/MainAct , encontraremos el cdigo java que
determina la lgica de la pantalla.
pantalla
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android "http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
"http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
"@+id/LinearLayout1"
android:layout_width
android:layout_width="match_parent"
android:layout_height
android:layout_height="match_parent"
android:orientation=
="vertical" >
<TextView
android:id="@+id/LblNombre"
"@+id/LblNombre"
android:layout_width
android:layout_width="wrap_content"
android:layout_height
android:layout_height="wrap_content"
android:text="@string/strNombre"
"@string/strNombre" >
</TextView>
<EditText
android:id="@+id/TxtNombre"
"@+id/TxtNombre"
android:layout_width
android:layout_width="match_parent"
android:layout_height
android:layout_height="wrap_content"
android:inputType
android:inputType="text">
</EditText>
<Button
android:id="@+id/BtnHola"
"@+id/BtnHola"
android:layout_width
android:layout_width="wrap_content"
android:layout_height
android:layout_height="wrap_content"
android:text="@string/strAceptar"
"@string/strAceptar" />
</LinearLayout>
En este XML se definen los elementos visuales que componen la interfaz de nuestra
pantalla principal y se especifican todas sus propiedades. No nos detendremos mucho por
ahora en cada detalle, pero expliquemos un poco lo que vemos en el fichero.
Adems de estas propiedades comunes a casi todos los controles que utilizaremos, en el
cuadro de texto hemos establecido tambin la propiedad
propied android:inputType,
android:inputTyp que
indica qu tipo de contenido va a albergar el control, en este caso texto normal (valor
text),
), aunque podra haber sido una contrasea (textPassword),), un telfono (phone),
una fecha (date)
<string name="strAceptar"
"strAceptar">Aceptar</string>
<string name="strNombre"
"strNombre">Escribe tu nombre: </string>
<TextView
android:id="@+id/LblNombre"
"@+id/LblNombre"
android:layout_width
android:layout_width="wrap_content"
android:layout_height
android:layout_height="wrap_content"
android:text="Escribe nombre >
"Escribe tu nombre"
Ing. Edgar Lizrraga Ugarte
</TextView>
<string name="strNombre"
"strNombre">Escribe tu nombre: </string>
Para aadir el fichero, pulsaremos el botn derecho del ratn sobre la carpeta de
recursos/res/layout y pulsaremos la opcin New Android XML file.
En el cuadro de dilogo que nos aparece indicaremos como tipo de recurso Layout,
indicaremos el nombre del fichero (con extensin .xml) y como elemento
el raz
seleccionaremos LinearLayout.
LinearLayou Finalmente pulsamos Finish para crear el fichero.
fichero
Ing. Edgar Lizrraga Ugarte
4.-. Eclipse crear entonces el nuevo fichero y lo abrir en el editor grfico, aunque
como ya indicamos, nosotros accederemos a la solapasolapa de cdigo para modificar
directamente el contenido XML del fichero.
fichero Para esta segunda pantalla el cdigo que
incluiramos sera el siguiente:
siguiente
<TextView
android:id="@+id/TxtSaludo"
"@+id/TxtSaludo"
android:layout_width
android:layout_width="wrap_content"
android:layout_height
android:layout_height="wrap_content"
android:text
android:text="" />
</LinearLayout>
Como ya vimos en un apartado anterior, las diferentes pantallas de una aplicacin Android
se definen mediante objetos de tipo Activity.. Por tanto, lo primero que encontramos
enco en
nuestro fichero java es la definicin de una nueva clase MainActivity
MainActivit que extiende
a Activity.. El nico mtodo que modificaremos de esta clase ser el
mtodo onCreate(),, llamado cuando se crea por primera vez la actividad. En este
mtodo lo nico que encontramos en principio, adems de la llamada a su implementacin
en la clase padre, es la llamada al mtod
mtodo setContentView
Ing. Edgar Lizrraga Ugarte
5.- Ahora vamos a crear una nueva actividad para la segunda pantalla de la aplicacin
anloga a sta primera, para lo que crearemos una nueva clase Saludo Salud que extienda
tambin de Activity y que implemente el mtodo onCreate() pero indicando esta vez
que utilice la interfaz definida para la segunda pantalla en R.layout.activity_saludo.
R.layout.activity_salud Para
ello, pulsaremos el botn derecho sobre la carpeta /src/tu.paquete.java/
/src/tu.paquete.java y
seleccionaremos
remos la opcin de men New / Class.
Class
import android.app.Activity;
import android.os.Bundle;
Ing. Edgar Lizrraga Ugarte
@Override
protected void onCreate(Bundle savedInstanceState) {
.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
setContentView(R.layout.
setContentView(R.layout.activity_saludo);
}
}
6.- A partir de aqu nosotros tendremos que incluir el resto de la lgica de la aplicacin.
Para que las variables txtNombre y btnHola sean reconocidas, tendremos que
declararlas como globales:
EditText txtNombre;
txtNombre
Button btnHola;
;
7.- La aplicacin funcionar cuando hagamos clic en el botn, para lo cual tendr que
implementar una funcin:
btnHola.setOnClickListener(
.setOnClickListener(this);
La anterior funcin hace que el botn se encuentre como oyente de cualquier evento
sobre ese componente. Si el usuario hace clic sobre l, entonces
entonces tendr que hacer una
determinada accin y esa es:
@Override
public void onClick(View
onClick v) {
// TODO Auto-generated
Auto method stub
Toast toast1 =
Toast.
Toast.makeText(getApplicationContext(),
txtNombre.getText(), Toast.LENGTH_SHORT
LENGTH_SHORT);
toast1.show();
}
Ing. Edgar Lizrraga Ugarte
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu
android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
btnHola.setOnClickListener(
.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated
Auto method stub
Toast toast1 =
Toast.
Toast.makeText(getApplicationContext(),
txtNombre.getText(), Toast.LENGTH_SHORT
LENGTH_SHORT);
toast1.show();
.show();
}
}