Академический Документы
Профессиональный Документы
Культура Документы
mediante la clase R(clase creada por Android Studio para conectar el xml con el MainActivity).
Unicamente crearemos objectos de los objetos con los que vayamos a interactuar, en este caso con
los dos primeros EditText y con el ultimo TextView (el click del boton se hace directamente desde
el xml), para ello (no tienen por qu llamarse igual):
private EditText et1,et2;
private TextView tv3;
eso ira en clase, fuera de los metodos. Dentro del metodo onCreate tendremos que defenir esas
referencias mediante:
et1=(EditText)findViewById(R.id.et1);
et2=(EditText)findViewById(R.id.et2);
tv3=(TextView)findViewById(R.id.tv3);
el mtodo findViewById(objecto de la clase R) devuelve un objecto View y es por ello que hay que
hacerle el cast.
Por ltimo habra que crear el mtodo void a ejecutar cuando se pulse al boton, para ello creamos un
nuevo mtodo en la clase con parmetro un objeto de la clase View. Asignamos en el xml el mtodo
que tiene que ejecutar cuando se le cliquee en onClick. El mtodo sera algo asi:
public void sumar(View view){
String valor1=et1.getText().toString();
String valor2=et2.getText().toString();
int nro1=Integer.parseInt(valor1);
int nro2=Integer.parseInt(valor2);
int suma=nro1+nro2;
String resu=String.valueOf(suma);
tv3.setText(resu);
}
5 - Control CheckBox
Objetivo: Lo mismo que el anterior pero con CheckBox(cajitas con ticks) siendo posible
seleccionar ambas opciones.
Poner dos CheckBox para sumar/restar. Se aaden con findViewById y para saber si estan
seleccionados usaremos el metodo id.isChecked() que sera true si si que lo esta.
6 - Control Spinner
Objetivo: Lo mismo que el anterior pero con un Spinner que es una lista despegable.
Para ello, aadiremos el Spinner y lo aadiremos como siempre con el findViewById.
Luego creamos un array con lo que queremos que muestre (todo esto en el onCreate):
String []opciones={"sumar","restar","multiplicar","dividir"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this
,android.R.layout.simple_spinner_item, opciones);
spinner1.setAdapter(adapter);
Se le pasa al ArrayAdapter un Activity (this), una configuracion y
el string con las opciones
la configuracion puede ser :
Para saber que opcion del menu esta marcada utilizaremos el metodo
spinner.getSelectedItem().toString()
y
luego
normalente
un
.equals() para que haga una cosa u otra
7 - Control ListView
Objetivo: Aperecen todos los nombres de unos paises(posibilidad de scroll), al seleccionar uno,
muestra el n de habitantes
El ListView es como un Spinner pero fijo y scrollable.
Insertamos un ListView y un TextView para que lo muestre. Creamos sus objectos con el metodo
findViewById.
Creamos dos arrays, uno con los paises y otro con los habitantes. Y asignamos al ListView los
paises similar a como se ha hecho antes
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this
,android.R.layout.simple_spinner_item, paises);
spinner1.setAdapter(adapter);
Para indicar que tiene que hacer al ser cliqueado cada uno de sus elementos, haremos (en onCreate):
lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
tv1.setText("Poblacin de "+ lv1.getItemAtPosition(position) + " es "+
habitantes[position]);
}
});
8 - Control ImageButton
Objetivo: Crear un boton con una imagen que al ser pulsado muestre un texto en un TextView
La imagen debera de ser copiada a app/src/main/res/drawable-mdpi.
Aadir el ImageButton y en sus propiedades, asignar la imagen al parametro src
Recordemos que para decir que hara el boton al ser pulsado, creamos un metodo y se lo asignamos
al paremetro onClick
Nota: Para evitar que la imagen tenga la misma calidad sea cual sea el dispotivo, habria que guardar
las imagenes con el mismo nombre y diferentes tamaos en las demas carpetas:
En la carpeta res/drawable-ldpi/ (guardamos la imagen con el tamao del 75% con respecto
al de la carpeta drawable-mdpi)
Crearemos un textView para indicar que hay que ingresar el numero, un textEdit para aadirlo y un
button para compararlos.
En el codigo, creamos el editText y un integer con un valor aleatorio. Lo convertimos a texto ya que
el Toast solo muestra String.
Creamos un objecto de la clase Toast mediante su clase esttica makeText y los paremetros de la
activity, el string y una constante para el tiempo que lo muestrara:
Toast notificacion=Toast.makeText(this,cadena,Toast.LENGTH_LONG);
y cuando queremos mostrar el texto, utilizaremos el metodo show.
Por ultimo faltaria crear el metodo que es ejecutado al pulsar el boton que te mostrara un mensaje
distinto, dependiendo de si el numero introducio es igual o no.
Nota: no es Toast notificacion = new
Toast.makeText(this,cadena,Toast.LENGTH_LONG); porque de la otra manera no
creamos un nuevo objeto cada vez, llamamos al metodo estatico que nos devuelve el objeto ya
creado, es decir, no creamos distintas copias del objecto que crea los mensajes
10 Control EditText
Dentro de los EditText podemos ver que hay muchos tipos de ellos, usaremos uno u otro en funcion
de lo que queremos que el usuario entre
Objetivo: Pedir al usuario un nombre y una contrasea, verificar, al pulsar un boton, si se ingreso
algo en el campo contrasea, en caso de que no notificarlo mediante un Toast
Poner dos campos, uno de Person Name y otro de Password. Aadir los dos campos al codigo y
crear el metodo que se usara al pulsar el boton.
Obtendremos el texto con .getText().toString(), luego comprabar si esta vacio con .length()==0 y en
caso de que si, mostrar un Toast.
Por otra parte, tenemos el boton de la segunda Activity que debe de volver a la main, en este caso
(al querer cerrar esta Activity) el metodo del boton sera:
public void boton(View view){
finish();
}
Para el metodo putExtra, el primer parametro es el nombre del dato y el segundo el dato en s.
Luego creamos la nueva Activity y aadimos un WebView, en el metodo onCreate crearemos este
objeto y aadiremos:
Bundle bundle = getIntent().getExtras();
String dato = bundle.getString(direccion);
webView1.loadUrl(http:// + dato);
El bundle sirve para recuperar los parmetros enviados desde donde se lanzo esta Activity y lo otro
es para abrir el navegador.
Nota: esta app requiere acceso a internet, para ello le hacen falta permisos, estos se aaden al
AndroidManifest.xml, lo abrimos y aadimos:
<uses-permission android:name="android.permission.INTERNET" />
18 Layout (LinearLayout)
El LinearLayout sirve para establecer los componentes uno junto a otro de manera horizontal o
vertical
Aadimos un LinearLayout y dentro de l diversos elementos. En sus propiedades podemos
cambiar el valor de la orientation que podran ser Horizontal o Vertical. Tambien nos puede interesar
cambiar el layout:height a wrap_content para que la altura de ese Layout sea solo la de sus
componentes y podamos aadir otros (Nota: todos los elementos que se salen de la pantalla sera
inaccesibles).
La RelativeLayout aade los componentes de manera libre y modificable, pero si queremos que se
comporte de alguna manera en especial podemos indicarselo. Para ello vamos al archivo XML en
modo Text, en ella cambiamos donde pone RelativeLayout, tanto al principio como al final, por
LinearLayout y aadiriamos la propiedad de la orientacion, android:orientation=vertical
19 Layout (TableLayout)
El TableLayout te organiza los elementos en filas y columnas (cada fila puede tener un numero
variable de componentes).
Aadimos el TableLayout y al aadir un elemento, el programa creara solo el TableRow que es el
subgrupo de elementos de esa fila.
El TableLayout te lo organiza por celdas, si queremos tres filas con tres botones de manera 3x3 y
abajo un boton que ocupe todo. Cada boton ocupara una celda excepto el ultimo que ocupara tres
celdas, esto se indica en las propiedades de ese elemento layout:span.
22 Icono de la aplicacin
Como ya hemos dicho, las imagenes se guardan en \app\src\main\res\drawable-mdpi, y tambien esta
ldpi, mdpi, hdpi y xhdpi. Esto es debido a las distintas posibles resoluciones de los dispositivos, la
regla oara almacernalo es:
Para cambiar el icono, aadiremos el nuevo icono con distintas resoluciones pero con el mismo
nombre en las distintas carpetas, borraremos el icono que viene de fabrica y por ultimo, le
indicaremos el nuevo icono en el AndroidManifest.xml en android:icon=@drawable/name SIN
EXTENSION.
41 Archivo strings.xml
El archivo strings.xml sirve para tener todas las cadenas de texto de nuestro programa en un unico
archivo, siendo asi mucho mas sencillo cambiar cada valor.
Este archivo se crea por defecto en /app/res/values/strings.xml
Para guardar cada uno de los strings, usamos esta codificacin:
<string name=hello_world>Hello world!</string>
Desde la vista diseo, al lado de text habran tres puntos (sirven para seleccionar las
constantes), le damos a new resource y le asignamos el resource name (la referencia), el
resource value (su contenido) y el file name (que sera strings.xml)
42 Internacionalizacin y archivo
strings.xml
Se consigue implementado diversos archivos strings.xml, uno para cada idioma.
Para crear diversos archivos xml, le daremos click derecho en values y new>values resource files,
en esa ventana seleccionaremos que lo queremos diferenciar por el idioma y elegimos el que
queramos.
En el nuevo archivo debemos de aadir todas las variables que existen en el strings.xml que viene
por defecto pero traduciendo su contenido.
El archivo strings.xml sera el que se use por defecto, mientras que cada uno de los diversos archivos
sera los que usara en caso de que se satisfaga la condicion puesta.
EXTRA
AlertDialog simple
Una ventana con un titulo, un mensaje y un boton para cerrarlo. El codigo sera:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Importante");
builder.setMessage("Este es un programa solo de prueba
completa");
builder.setPositiveButton("OK",null);
builder.create();
builder.show();
no
la
versin
El principio es igual.
El .setCancelable(false) es para que el AlertDialog no se pueda ser cancelado pulsando cualquier
parte de la pantalla
Los metodos onClick es lo que hace en cada uno de los botones