Este documento proporciona instrucciones para crear 20 aplicaciones móviles diferentes en Android, incluyendo apps Hola Mundo, tabla de multiplicar, cambiar fondo de pantalla, calculadora básica, reproductor de video y más. Explica los conceptos básicos de Android como actividades, layouts, widgets y más.
10. El único método que sobrescribiremos de esta clase será el método OnCreate, llamado
cuando se crea por primera vez la actividad. En este método lo único que encontramos en
principio, además de la llamada a su implementación en la clase padre, es la llamada al
método setContentView(R.layout.main).
Con esta llamada estaremos indicando a Android que debe establecer como interfaz gráfica
de esta actividad la definida en el recurso R.layout.main, que no es más que la que hemos
especificado en el fichero /res/layout/main.xml. Una vez más vemos la utilidad de las
diferentes constantes de recursos creadas automáticamente en la clase R al compilar el
proyecto.
ó
package com.example.holamundo;
import android.os.Bundle; ///librería
import android.app.Activity; ///librería
import android.view.Menu; ///librería
public class MainActivity extends Activity { ///nombre de la clase
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
11. En este XML se definen los elementos visuales que componen la interfaz de nuestra
pantalla principal y se especifican todas sus propiedades.
android:text. Texto del control. En Android, el texto de un control se puede especificar
directamente, o bien utilizar alguna de las cadenas de texto definidas en los recursos del
proyecto (fichero strings.xml), en cuyo caso indicaremos su identificador precedido del
prefijo “@string/”.
android: layout_height y android: layout_width. Dimensiones del control con respecto
al layout que lo contiene. Esta propiedad tomará normalmente los valores “wrap_content”
para indicar que las dimensiones del control se ajustarán al contenido del mismo, o bien
“fill_parent” para indicar que el ancho o el alto del control se ajustarán al ancho o alto del
layout contenedor respectivamente.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView ///Este sirve para poner texto en pantalla.
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Hola_Mundo"
/> ///cierre del TextView
</RelativeLayout> ///Cierre del RelativeLayout.
12.
13. import android.os.Bundle;
import android.app.Activity;
import android.view.View; //librerías que se Usaran
import android.view.View.OnClickListener;
import android.widget.*;
public class MainActivity extends Activity implements OnClickListener {
//se implementara el método OnClickListener.
EditText edtNumeroUno;
El control EditText (caja de edición de texto) es otro componente indispensable de casi toda
aplicación Android. Es uno de los medios que tiene el usuario para introducir datos a la aplicación.
TextView textResultado;
Los TextView (etiquetas de texto) se utilizan como medio de salida, es decir, para mostrar un
determinado texto al usuario.
Button btnCalcular, btnBorrar;
Es el típico botón normal, contiene un texto y puede contener imágenes de tipo icono que puedes
alinear con el texto.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtNumeroUno = (EditText) findViewById(R.id.num);
textResultado = (TextView) findViewById(R.id.res);
btnCalcular = (Button) findViewById(R.id.cal);
btnBorrar = (Button) findViewById(R.id.bor);
btnCalcular.setOnClickListener(this);
btnBorrar.setOnClickListener(this);
}
14. @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.cal:
String res = " ";
int uno =
Integer.parseInt(edtNumeroUno.getText().toString());
for (int i = 1; i <= 10; i++) { //el for lo que hará
es un ciclo de menor o igual a 10 del numero ingresado.
res = res + " " + uno + " x " + i + " = " + (i *
uno) + "n"; //es el resultado que nos marcara por ejemplo:
5x1=5 hasta el número diez.
}
textResultado.setText(res); //Este jala el resultado
para visualizarse en el EditText.
break;
case R.id.bor:
edtNumeroUno.setText("");
textResultado.setText("");
break;
}
}
}
á á
ó á ó
ú
ú á
í
15. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#9933CC" // Con este parámetro definimos el color de fondo.
android:orientation="vertical" >
<EditText
android:id="@+id/num"//esta propiedad es el ID del control, con el que podremos
identificarlo de forma única.
android:layout_width="304dp"
android:layout_height="50dp"
android:layout_margin="10dp"
android:layout_weight="0.32"
android:background="#FFFFFF"//Color de fondo
android:hint="Numero "//visualización de indicación.
android:maxLength="100"
android:numeric="decimal"//datos de tipo decimal.
android:textColor="#00CC00"// Con este parámetro definimos el color de texto.
android:textStyle="bold"//estilo del texto />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/cal"//esta propiedad es el ID del control, con el que
podremos identificarlo de forma única.
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:text="Calcular"
android:textColor="#00CC00"// Con este parámetro definimos el color de
texto.
android:textStyle="bold"//estilo del texto />
<Button
android:id="@+id/bor"//esta propiedad es el ID del control, con el que
podremos identificarlo de forma única.
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:text="Borrar"
android:textColor="#00CC00"// Con este parámetro definimos el color de
texto.
android:textStyle="bold" //estilo del texto />
</LinearLayout>
16. <EditText
android:id="@+id/res"//esta propiedad es el ID del control, con el que podremos
identificarlo de forma única.
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_margin="10dp"
android:layout_weight="3.46"
android:background="#FFFFFF"//color de fondo
android:hint="Resultado"//visualización de indicación.
android:numeric="decimal"//datos de tipo decimal.
android:textColor="#00CC00" //Con este parámetro definimos el color de texto.
android:textStyle="bold" />
</LinearLayout>
17. La propiedad más interesante es android:src, que permite indicar la imagen a mostrar. Nuevamente,
lo normal será indicar como origen de la imagen el identificador de un recurso de nuestra
carpeta /res/drawable, por ejemplo android:src=”@drawable/unaimagen”. Además de esta
propiedad, existen algunas otras útiles en algunas ocasiones como las destinadas a establecer el
tamaño máximo que puede ocupar la imagen, android:maxWidth y android:maxHeight.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/image"//esta propiedad es el ID del control, con el que
podremos identificarlo de forma única.
android:layout_width="match_parent"
android:layout_height="200sp"
android:src="@drawable/a"//carpeta donde se encuentra la
imagen./>
18. <HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="100sp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image1"//esta propiedad es el ID del control, con el
que podremos identificarlo de forma única.
android:layout_width="100sp"
android:layout_height="100sp"
android:src="@drawable/a""//carpeta donde se encuentra la
imagen. />
<ImageView
android:id="@+id/image2"//esta propiedad es el ID del control, con el
que podremos identificarlo de forma única.
android:layout_width="100sp"
android:layout_height="100sp"
android:src="@drawable/b""//carpeta donde se encuentra la
imagen. />
<ImageView
android:id="@+id/image3""//esta propiedad es el ID del control, con
el que podremos identificarlo de forma única.
android:layout_width="100sp"
android:layout_height="100sp"
android:src="@drawable/c"//carpeta donde se encuentra la
imagen. />
</LinearLayout>
</HorizontalScrollView>
<Button
android:id="@+id/Cambiar"//esta propiedad es el ID del control, con el que
podremos identificarlo de forma única.
android:layout_width="match_parent"
android:layout_height="70sp"
android:text="Cambiar Fondo" />
</LinearLayout>
19. import android.app.Activity;
import android.app.WallpaperManager;
import android.os.Bundle;
import android.view.View; //Librerías que se usaran
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
ImageView image, image2, image3, image4, image5;
;
//El control ImageView permite mostrar imágenes en la aplicación.
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView) findViewById(R.id.image);
image2 = (ImageView) findViewById(R.id.image2);
image3 = (ImageView) findViewById(R.id.image3);
image4 = (ImageView) findViewById(R.id.image4);
image5 = (ImageView) findViewById(R.id.image5);
btn = (Button) findViewById(R.id.Cambiar);
image.setOnClickListener(this);
image2.setOnClickListener(this);
image3.setOnClickListener(this);
btn.setOnClickListener(this);
}
Se crea un switch con tres casos dependiendo cuantas imágenes tengas el
cual jalaran la imagen de la carpeta drawable.
public void onClick(View v) {
switch (v.getId()) {
case R.id.image:
image.setImageResource(R.drawable.a);
fondo = R.drawable.a;
break;
case R.id.image2:
image.setImageResource(R.drawable.b);
fondo = R.drawable.b;
break;
case R.id.image3:
image.setImageResource(R.drawable.c);
fondo = R.drawable.c;
break;
20. ;
case R.id.Cambiar:
WallpaperManager mywp = WallpaperManager
.getInstance(getApplicationContext());
try {
mywp.setResource(fondo);
} catch (Exception e) {
e.printStackTrace();
//realiza la función de cambiar el Wall_paper.
}
Toast.makeText(this, "Se ha cambiado el Wallpaper",
Toast.LENGTH_LONG).show();
break;
//lo que realiza es mostrar un pequeño cuadro de texto con la
indicación que se le ordene.
}
}
}
21. á
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#9933CC" //color de fondo.
android:orientation="vertical" >
<EditText
android:id="@+id/num""//esta propiedad es el ID del control, con el que
podremos identificarlo de forma única.
android:layout_width="304dp"
android:layout_height="50dp"
android:layout_margin="10dp"
android:layout_weight="0.32"
android:background="#FFFFFF"//color de fondo
android:hint="Numero 1"//visualización de indicación.
android:maxLength="10"
android:numeric="decimal"//datos de tipo decimal.
android:textColor="#00CC00"// Con este parámetro definimos el color de texto.
android:textStyle="bold"/>//estilo del texto
<EditText
android:id="@+id/numd"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_margin="10dp"
android:background="#FFFFFF"
android:hint="Numero 2"
android:maxLength="10"
android:numeric="decimal"
android:textColor="#00CC00"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/cal"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:text="Calcular"
android:textColor="#00CC00"
android:textStyle="bold" />
26. //controles de video
video.start(); //inicialización
video.requestFocus();
}
}
Para aguardar nuestro video se crea una carpeta llamada raw donde va a
contener el video en la carpeta res.
27. <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/elemento"""//esta propiedad es el ID del control, con el
que podremos identificarlo de forma única.
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="0.3"
android:contentDescription="agregarDescElemneto"
android:hint="Agregar"//visualización de indicación.
android:marqueeRepeatLimit="marquee_forever"
android:textColor="#ff3366" //color de texto
android:textSize="25sp" //tamaño texto
android:textStyle="bold" > //estilo del texto
</EditText>
<Button
android:id="@+id/agregar"// esta propiedad es el ID del control, con el que
podremos identificarlo de forma única.
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/enter"//boton imagen>
</Button>
</LinearLayout>
<ListView
android:id="@+id/lista"// esta propiedad es el ID del control, con el que
podremos identificarlo de forma única.
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
28. package shinoda.listaview;
import java.util.ArrayList;
import android.os.Bundle; //librerías que se usaran
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
public class Lista extends Activity implements OnClickListener {
EditText elemento;
Button btn; //se declaran las variables
ListView lista;
ArrayList<String> elementos;
ArrayAdapter<String> adaptador;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista);
lista = (ListView) findViewById(R.id.lista);
elemento = (EditText) findViewById(R.id.elemento);
btn = (Button) findViewById(R.id.agregar);
elementos = new ArrayList<String>(); //se crea un arreglo de
elementos es un arreglo de cadenas
adaptador = new ArrayAdapter(this, //este nos sirve para
hacer las converciones
android.R.layout.simple_list_item_1,elementos);
lista.setAdapter(adaptador);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.agregar) {
elementos.add(elemento.getText().toString());
elemento.setText(""); //agregan los elementos y se agrea lo
escrito en el EditText
adaptador.notifyDataSetChanged();//verifica el resultado en
la lista
}
}
}
43. package shinoda.spin;
import android.os.Bundle;
import android.app.Activity;
import android.view.View; //librerías que se Usan
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class Spin extends Activity implements OnItemSelectedListener {
Spinner banda, integrante;
ArrayAdapter<String> aaBanda, aaBanda1, aaBanda2, aaBanda3,
aaBanda4,aaBanda5, Clear;// Es el más sencillo de todos los adaptadores,
y provee de datos a un control de selección a partir de un array de
objetos de cualquier tipo en este caso String.
String[] opcBanda = new String[] { "Metallica", "Rolling Stones",
"The Beatles", "Linkin Park", "Iron Maiden" };
String[] opcBanda1 = new String[] { "James Hetfield", "Kirk
Hammet",
"Lars Ulirich", "Robert Trijillo" };
//cada uno de estos es un arrelo es cual tiene guardado lo elementos
escritos
String[] opcBanda2 = new String[] { "Mick Jagger ", "Keith
Richards",
"Ron Wood", "Charlie Watts" };
String[] opcBanda3 = new String[] { "Paul MacCarthey", "John
Lennon",
"Ringo Starr", "George Harrison" };
String[] opcBanda4 = new String[] { "Mike Shinoda ", "Chester
Bennington ",
"Brad Delson ", "Pohenix", "Mr Hahn" };
String[] opcBanda5 = new String[] { "Bruce Dickinson", "Steve
Harris ",
"Nicko McBrain ", "Adrian Smith" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spin);
banda = (Spinner) findViewById(R.id.banda);
integrante = (Spinner) findViewById(R.id.integrante);
banda.setOnItemSelectedListener(this);
integrante.setOnItemSelectedListener(this);
44. aaBanda = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, opcBanda);
aaBanda1 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, opcBanda1);
aaBanda2 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, opcBanda2);
aaBanda3 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, opcBanda3);
aaBanda4 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, opcBanda4);
aaBanda5 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, opcBanda5);
banda.setAdapter(aaBanda);
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int
arg2,
long arg3) {
switch (arg0.getId()) {
case R.id.banda:
int seleccionado = banda.getSelectedItemPosition();
if (seleccionado == 0) {
integrante.setAdapter(aaBanda1);
}
if (seleccionado == 1) {
integrante.setAdapter(aaBanda2);
}
if (seleccionado == 2) {
integrante.setAdapter(aaBanda3);
}
if (seleccionado == 3) {
integrante.setAdapter(aaBanda4);
}
if (seleccionado == 4) {
integrante.setAdapter(aaBanda5);
}
break;
//se declaran los if junto con un switch para que este nos muestres los
elementos del primer spiner.
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
57. package shinoda.examen;
import android.os.Bundle;
import android.app.Activity;
import android.view.View; //librerías que se usaran
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
EditText edtAnio, edtMes, edtDia;
TextView txtResultado; //se declaran las variables
Button btnCalcular, btnBorrar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtAnio = (EditText) findViewById(R.id.anio);
edtMes = (EditText) findViewById(R.id.mes);
edtDia = (EditText) findViewById(R.id.dia);
txtResultado = (TextView) findViewById(R.id.res);
btnCalcular = (Button) findViewById(R.id.cal);
btnBorrar = (Button) findViewById(R.id.bor);
btnCalcular.setOnClickListener(this);
btnBorrar.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.cal:
String u = edtAnio.getText().toString();
String g = edtMes.getText().toString();
String h = edtDia.getText().toString();
if (!u.equals("") && !g.equals("")) {
int anio = Integer.parseInt(edtAnio.getText().toString());
int mes = Integer.parseInt(edtMes.getText().toString());
int dia = Integer.parseInt(edtDia.getText().toString());
if (dia == 22 && mes < 4) {
int a = (2015 - anio);
int m = (4 - mes);
58. txtResultado.setText(" tus años son:" + a
+ "n Tus meses son:" + m + "n Tus dias
son: 0");
}
if (dia < 22 && mes < 4) {
int a = (2015 - anio);
int d = 22 - dia;
int m = (4 - mes);
txtResultado.setText(" tus años son:" + a
+ "n Tus meses son:" + m + "n Tus dias
son:" + d);
}
if (dia > 22 && mes < 4) {
int a = (2015 - anio);
int di = dia - 22;
int d = 30 - di;
int m = (3 - mes);
txtResultado.setText(" tus años son:" + a
+ "n Tus meses son:" + m + "n Tus dias
son:" + d);
}
if (dia == 22 && mes == 4) {
int a = (2015 - anio);
txtResultado.setText(" tus años son:" + a
+ "n Tus meses son:0 n Tus dias son: 0");
}
if (dia < 22 && mes == 4) {
int a = (2015 - anio);
int d = 22 - dia;
txtResultado.setText(" tus años son:" + a
+ "n Tus meses son: 0 n Tus dias son:" +
d);
}
if (dia == 22 && mes > 4) {
int a = (2014 - anio);
int me = (mes - 4);
int m = 12 - me;
txtResultado.setText(" tus años son:" + a
+ "n Tus meses son:" + m + "n Tus dias
son: 0");
}
if (dia < 22 && mes > 4) {
59. int a = (2014 - anio);
int me = (mes - 4);
int m = 12 - me;
int d = 22 - 15;
txtResultado.setText(" tus años son:" + a
+ "n Tus meses son:" + m + "n Tus dias
son:" + d);
}
if (dia > 22 && mes > 4) {
int a = (2014 - anio);
int me = (mes - 5);
int m = 12 - me;
int di = dia - 22;
int d = 30 - di;
txtResultado.setText(" tus años son:" + a
+ "n Tus meses son:" + m + "n Tus dias
son:" + d);
}
} else {
txtResultado.setText("Valores incorrectos");
}
break;
case R.id.bor:
edtAnio.setText("");
edtMes.setText(""); //borra los datos que anteriormente se tenían.
edtDia.setText("");
txtResultado.setText("");
break;
}
}
}
68. igual = false;
} else {
resultado = 0;
}
anterior.setText(num1 + "+");
display.setText("");
o = 3;
p = false;
deshabilitar();
}
break;
case R.id.resta:
if (validar() == true) {
if (igual == true) {
resultado = num1;
igual = false;
} else {
resultado = 0;
}
anterior.setText(num1 + "-");
display.setText("");
o = 4;
p = false;
deshabilitar();
}
break;
case R.id.multiplicacion:
if (validar() == true) {
if (igual == true) {
resultado = num1;
igual = false;
} else {
resultado = 0;
}
anterior.setText(num1 + "*");
display.setText("");
o = 5;
p = false;
deshabilitar();
}
break;
case R.id.division:
if (validar() == true) {
if (igual == true) {
resultado = num1;
igual = false;
} else {
resultado = 0;
}
anterior.setText(num1 + "/");
display.setText("");
o = 6;
p = false;
deshabilitar();
}
break;
case R.id.uno:
69. if (igual == true) {
borrar();
igual = false;
}
display.append("1");
break;
case R.id.dos:
if (igual == true) {
borrar();
igual = false;
}
display.append("2");
break;
case R.id.tres:
if (igual == true) {
borrar();
igual = false;
}
display.append("3");
break;
case R.id.cuatro:
if (igual == true) {
borrar();
igual = false;
}
display.append("4");
break;
case R.id.cinco:
if (igual == true) {
borrar();
igual = false;
}
display.append("5");
break;
case R.id.seis:
if (igual == true) {
borrar();
igual = false;
}
display.append("6");
break;
case R.id.siete:
if (igual == true) {
borrar();
igual = false;
}
display.append("7");
break;
case R.id.ocho:
if (igual == true) {
borrar();
igual = false;
}
display.append("8");
break;
case R.id.nueve:
if (igual == true) {
70. borrar();
igual = false;
}
display.append("9");
break;
case R.id.cero:
if (igual == true) {
borrar();
igual = false;
}
display.append("0");
break;
case R.id.punto:
if (p == false && igual == false) {
display.append(".");
p = true;
} else {
if (p == false) {
if (resultado != 0) {
borrar();
}
display.append(".");
p = true;
igual = false;
}
}
break;
case R.id.ac:
borrar();
habilitar();
break;
case R.id.del:
String cad = display.getText().toString();
if (!cad.equals("")) {
char[] cadena = cad.toCharArray();
String f = "";
for (int i = 0; i <= cadena.length - 2; i++) {
f = f + cadena[i];
}
display.setText(f);
} else {
Toast.makeText(this, "No hay valores", Toast.LENGTH_SHORT)
.show();
resultado = 0;
habilitar();
}
break;
case R.id.igual:
if (validar() == true) {
switch (o) {
case 3:
resultado = num1 + num2;
break;
case 4:
resultado = num1 - num2;
break;
case 5:
82. @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.pre:
String x = Dia.getText().toString();
String y = Mes.getText().toString();
if (!x.equals("") && !y.equals("")) {
int dia = Integer.parseInt(Dia.getText().toString());
String mes = Mes.getText().toString();
if (mes.equals("Enero")) {
if (dia > 0 & dia < 32) {
beta.append("Tu eres el signo de Capricornio");
} else if (dia > 20 & dia < 32) {
beta.append("Tu eres el signo de Acuario");
}
}
else if (mes.equals("Febrero")) {
if (dia > 0 & dia < 20) {
beta.append("Tu eres el signo de Acuario");
} else if (dia > 19 & dia < 29) {
beta.append("Tu eres el digno de Piscis");
}
}
else if (mes.equals("Marzo")) {
if (dia > 0 & dia < 21) {
beta.append("Tu eres el signo de Piscis");
} else if (dia > 20 & dia < 32) {
beta.append("Tu eres el digno de Aries");
}
}
else if (mes.equals("Abril")) {
if (dia > 0 & dia < 22) {
beta.append("Tu eres el signo de Aries");
} else if (dia > 21 & dia < 32) {
beta.append("Tu eres el digno de Tauro");
}
}
83. else if (mes.equals("Mayo")) {
if (dia > 0 & dia < 22) {
beta.append("Tu eres el signo de Tauro");
} else if (dia > 21 & dia < 32) {
beta.append("Tu eres el digno de Geminis");
}
}
else if (mes.equals("Junio")) {
if (dia > 0 & dia < 22) {
beta.append("Tu eres el signo de Geminis");
} else if (dia > 21 & dia < 31) {
beta.append("Tu eres el digno de Cancer");
}
}
else if (mes.equals("julio")) {
if (dia > 0 & dia < 23) {
beta.append("Tu eres el signo de Cancer");
} else if (dia > 22 & dia < 32) {
beta.append("Tu eres el digno de Leo");
}
}
else if (mes.equals("Agosto")) {
if (dia > 0 & dia < 23) {
beta.append("Tu eres el signo de Leo");
} else if (dia > 22 & dia < 32) {
beta.append("Tu eres el digno de Virgo");
}
}
else if (mes.equals("Septiembre")) {
if (dia > 0 & dia < 23) {
beta.append("Tu eres el signo de Virgo");
} else if (dia > 22 & dia < 31) {
beta.append("Tu eres el digno de Libra");
}
}
else if (mes.equals("Octubre")) {
if (dia > 0 & dia < 23) {
beta.append("Tu eres el signo de Libra");
84. } else if (dia > 22 & dia < 32) {
beta.append("Tu eres el digno de Escorpion");
}
}
else if (mes.equals("Noviembre")) {
if (dia > 0 & dia < 23) {
beta.append("Tu eres el signo de Escorpion");
} else if (dia > 30 & dia < 17) {
beta.append("Tu eres el digno de Ofiuco");
}
else if (mes.equals("Noviembre")) {
if (dia > 30 & dia < 17) {
beta.append("Tu eres el signo de Sagitario");
}
}
}
else if (mes.equals("Diciembre")) {
if (dia > 0 & dia < 23) {
beta.append("Tu eres el signo de Sagitario");
} else if (dia > 22 & dia < 32) {
beta.append("Tu eres el digno de Capricornio");
}
}
}
break;
case R.id.bor:
Dia.setText(""); //elimina los datos anteriores
Mes.setText("");
beta.setText("");
break;
}
}
}
89. package shinoda.color;
import android.os.Bundle;
import android.app.Activity;
import android.widget.*;
public class Color extends Activity implements
SeekBar.OnSeekBarChangeListener {
SeekBar rojo, amarillo, azul;
TextView vrojo, vamarillo, vazul, hex, color;
int r = 0, v = 0, a = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_color);
rojo = (SeekBar) findViewById(R.id.rojo);
amarillo = (SeekBar) findViewById(R.id.amarillo);
azul = (SeekBar) findViewById(R.id.azul);
hex = (TextView) findViewById(R.id.hex);
color = (TextView) findViewById(R.id.color);
vrojo = (TextView) findViewById(R.id.vrojo);
vamarillo = (TextView) findViewById(R.id.vamarillo);
vazul = (TextView) findViewById(R.id.vazul);
rojo.setOnSeekBarChangeListener(this);
amarillo.setOnSeekBarChangeListener(this);
azul.setOnSeekBarChangeListener(this);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
switch (seekBar.getId()) {
case R.id.rojo:
r = progress;
break;
case R.id.amarillo:
v = progress;
break;
case R.id.azul:
a = progress;
break;
}
String c = ColorHex(r, v, a);
hex.setText("HEX: " + c);
90. color.setBackgroundColor(android.graphics.Color.rgb(r, v,
a));
}
public String ColorHex(int r, int v, int a) {
String color = "";
color = "#";
color += Integer.toHexString(r);
color += Integer.toHexString(v);
color += Integer.toHexString(a);
return color;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
vrojo.setText("R: " + r);
vamarillo.setText("Y: " + v);
vazul.setText("B: " + a);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
vrojo.setText("R: " + r);
vamarillo.setText("Y: " + v);
vazul.setText("B: " + a);
}
91. ó
GRACIAS A ESTE SISTEMA OPERATIVO UN CELULAR MOVIL YA
TIENE MAS APLICACIONES PARA SU NECESIDAD.
EN ESTE MANUAL RECABAMOS ALGUNAS APLICACIONES MUY
BASICAS PARA QUE SE PUEDA LLEGAR A UNA APLICACIÓN MAS
COMPLEJA.
APRENDIMOS LAS COSAS MAS BASICAS DE COMO CREAR UNA
APLICACIÓN ADEMAS DE QUE SUPIMOS LOS CONCEPTOS
BASICOS DE CADA UNA DE LAS APLICACIONES CREADAS.
ESTO ES EL FUTURO UN MUNDO LLENO DE TECNOLOGIA.