introducción
En estos días la demanda de teléfonos inteligentes está aumentando y tenemos
diferentes tipos de clientes, por ejemplo, Touch Phone, mesas, notas, etc.
las demandas de las aplicaciones para estos clientes inteligentes son constantemente
aumentando y tenemos varios sistemas operativos para estos clientes inteligentes
por ejemplo, Android, IOS y Windows, etc. Este artículo proporcionará un
guía para desarrolladores .net o principiantes para desarrollar aplicaciones de Android.
Ambiente de desarrollo
Este artículo no se centra en cómo instalar / configurar
entorno de desarrollo, puede encontrar diferentes entornos de desarrollo
en Internet. En este artículo, utilizaré el entorno de desarrollo ” eclipse mobile juno “.
Crear nuevo proyecto
Para crear un nuevo proyecto, haga clic en Archivo -> Nuevo -> Proyecto.
Abre la nueva ventana del asistente donde puede seleccionar la aplicación.
plantilla y establezca el nombre del proyecto y el nombre del paquete.
Al hacer clic en el botón Siguiente, se mueve al siguiente paso. aquí
proporcione el “Nombre de la aplicación”, el “Nombre del proyecto” y el “Nombre del paquete”.
“Nombre del paquete” es lo mismo que “Nombre del espacio” en .Net y debe ser único.
El nombre del proyecto solo lo utiliza Eclipse y debe ser único en
espacio de trabajo
También debe seleccionar “SDK mínimo requerido” del menú desplegable. Eso
es la versión más baja de Android que admitirá su aplicación.
Luego seleccione “Target SDK”, que es la API más alta que la aplicación
se sabe que trabaja con Luego seleccione el SDK instalado para “Compilar con”
opción de compilar su código para el SDK dirigido seleccionado.
En los próximos pasos del asistente, debe seleccionar iconos, algunos
otra información y en el último paso proporcione el nombre de su actividad
y es el tipo de navegación.
Proporcionaré los detalles de la actividad y el diseño más adelante, por ahora
puede decir que es el formulario de Windows como aplicación de escritorio o como página web
en la aplicación web Proporcione el nombre de Actividad y Diseño. Salir
Tipo de navegación “Ninguno” por ahora. Presione el botón de terminar. Eclipse lo hará
generar automáticamente actividad de inicio para usted.
Dentro de Eclipse, puede ver su proyecto en el “Paquete
Explorer “del lado izquierdo de la pantalla. El “HelloWorld”
La aplicación contiene varias carpetas y archivos generados automáticamente. Vamos
discuta uno por uno.
- / Src: contiene toda la fuente java
archivos que están asociados al proyecto. Por ejemplo el
El archivo MainActivity.java generado por Eclipse se almacena en este directorio
bajo el nombre del paquete “com.MyFirst.helloworld” que especificó en el
mago. Puede agregar más paquetes para su aplicación, por ejemplo
com.MyFirst.Fragments, CommonClasses etc.
- / gen: contiene los archivos fuente de Java
y otros archivos de código generados por Eclipse. Utilizaremos el código de archivo R.java
Más adelante en nuestro proyecto. Este archivo se genera para vincular su recurso
archivos para usar en sus archivos java en la carpeta / src.
- Directorios de Andriod (/ Android 4.2 y / Dependencias de Android):
El directorio de Android 4.2 se genera contra su Android seleccionado
SDK y carpeta de dependencias, el archivo de soporte se genera para el
compatibilidad con versiones anteriores de Android SDK.
- / assests: por defecto esto está vacío
carpeta, pero puede poner sus activos sin procesar en ella y estos archivos incluyen en
sus proyectos tal cual Por ejemplo, es una buena ubicación para texturas y
datos del juego.
- / bin: es el directorio de salida para la compilación. Puede encontrar el archivo .apk final y otros recursos compilados en esta carpeta.
- / libs: contiene las bibliotecas privadas (jar) que quizás desee utilizar en su aplicación.
- / res: contiene todos los recursos
archivos que están asociados a su aplicación. Todos los gráficos
El elemento, la cadena y el diseño de la aplicación existe en una de las subcarpetas
de la res. Añadiremos algunos recursos más adelante en este proyecto. El auto
el archivo de diseño generado “activity_main.xml” por Eclipse existe en el diseño
subcarpeta.
- Project.properties: este archivo es
generado por el asistente de proyecto de Android y se utiliza para la configuración de Eclipse.
Es muy raro cambiar este archivo directamente. En su lugar, haga clic derecho en
el proyecto en Eclipse y haga clic en propiedades y realice cualquier cambio que
Se requiere para su aplicación.
Ejecute su aplicación en el emulador
Primero necesitas configurar el emulador para probar tu
solicitud. Para configurar su emulador, haga clic en la ventana -> Android
Administrador de dispositivo virtual
Se abrirá una ventana emergente donde puedes crear un nuevo dispositivo virtual,
Editar existe e inicia cualquier dispositivo virtual. Después de crear tu nuevo virtual
dispositivo cierra esta ventana. Ahora haga clic derecho en la aplicación en “Paquete
Explorer “en el lado izquierdo de la pantalla y haga clic en Ejecutar como
-> Aplicación de Android. Compilará su aplicación y ejecutará
en el emulador
Después de unos minutos, se iniciará el emulador y podrá ver su aplicación HelloWorld en él.
En la pantalla puede ver la barra de estado, la barra de acción y la navegación
Bar. No tiene nada que ver con la barra de estado y la barra de navegación,
está siendo administrado por el sistema. La barra de acción contiene el logotipo y el título.
de su aplicación y también puede abrir el menú haciendo clic en el botón Menú
(tres puntos verticales) en él. Área de diseño donde colocamos todos los controles de la interfaz de usuario.
Patrón de diseñó
Como se mencionó anteriormente, Eclipse genera por defecto uno
diseño. En el emulador, la aplicación muestra solo el texto “¡Hola Mundo!”
en el medio de la pantalla. Abra el diseño desde
/res/layout/activity_main.xml y puede ver el diseño en el diseñador en
La zona media Eclipse. Puede cambiar la vista de gráfico o xml según
tu deseo. Eclipse le ofrece ambas opciones en la parte inferior del diseño
“Diseño gráfico” o “activity_main.xml”.
En el diseñador puede ver todos los controles disponibles para el diseño de la interfaz de usuario
en diferentes pestañas, por ejemplo, campos de texto, diseños, etc. Crearé una interfaz de usuario
a continuación en la imagen para comprender el componente básico de Android
solicitud. Comencemos a jugar con el diseño.
Este diseño está diseñado con diseño lineal. LinearLayout
es un grupo de vista que alinea los elementos LinearLayout
una sola dirección, horizontal o vertical. El atributo android:orientation
se usa para establecer la dirección. Por ejemplo, android:orientation="vertical"
. Eclipse proporciona una panorámica de propiedades en el lado derecho de la pantalla para establecer las propiedades del diseñador. TextView
control TextView
es un texto de solo lectura. Solo puede verlo y no puede editarlo. EditText
control EditText
se utiliza para obtener información del usuario. Button
es un control de botón estándar y en el evento de clic realizamos acciones en consecuencia.
Ocultar encogimiento
Código de copia
xmlns: android = ” http://schemas.android.com/apk/res/android" ;
android: layout_width = “match_parent”
android: layout_height = “match_parent”
android: orientación = “vertical”>
android: layout_width = “fill_parent”
android: layout_height = “30dp”
android: background = “@ drawable / header_bg_royal”
android: paddingLeft = “8dp”
android: paddingTop = “6dp”
android: text = “@ string / intent_title”
android: textColor = “@ color / white_color”
android: textStyle = “bold” />
android: layout_width = “match_parent”
android: layout_height = “wrap_content”
android: layout_marginTop = “10dp”
android: layout_marginBottom = “10dp”>
android: id = “@ + id / btn_phone_call”
android: layout_width = “wrap_content”
android: layout_height = “wrap_content”
android: text = “@ string / phone_call_title” />
android: id = “@ + id / btn_map_application”
android: layout_width = “wrap_content”
android: layout_height = “wrap_content”
android: text = “@ string / map_title” />
android: layout_width = “fill_parent”
android: layout_height = “30dp”
android: background = “@ drawable / header_bg_royal”
android: paddingLeft = “8dp”
android: paddingTop = “6dp”
android: text = “@ string / activity_title”
android: textColor = “@ color / white_color”
android: textStyle = “bold” />
android: layout_width = “match_parent”
android: layout_height = “wrap_content”
android: layout_marginTop = “10dp”
android: layout_marginBottom = “10dp”>
android: id = “@ + id / btn_open_activity”
android: layout_width = “wrap_content”
android: layout_height = “wrap_content”
android: text = “@ string / open_activity_title” />
.
.
.
Una cosa que debes notar en esta interfaz de usuario es que no he registrado ninguna
evento para los botones aquí en el diseño. Podemos hacer aquí usando el atributo onClick
,
Pero no es una buena manera de hacerlo aquí. Ahora es tiempo de entender el
Algunas propiedades / atributos de diferentes elementos de la interfaz de usuario.
Propiedades
layout_width & layout_height: estas propiedades se utilizan para establecer el ancho y la altura del elemento. Los valores posibles son ” fill_parent
“, ” match_parent
“, ” wrap_content
” y cualquier número (por ejemplo, 100dp). fill_parent
y match_parent
son iguales. fill_parent
se renombra a match_parent
en el nivel de API 8 y superior, lo que significa que la vista quiere ser tan grande como padre (menos relleno). wrap_content
significa establecer el ancho o alto según el contenido o el elemento secundario.
android: background = “@ drawable / header_bg_royal”:
Esta propiedad es similar a los otros lenguajes de programación para establecer
Antecedentes del elemento. El punto interesante aquí es establecer el
antecedentes de los recursos de la aplicación de Android. header_bg_royal
es la imagen que pegué en res/drawable-hdpi
. Puedes ver la ruta completa en la imagen a continuación.
En el archivo xml de diseño podemos acceder a los recursos utilizando el signo @
al comienzo del nombre del recurso. @drawable
significa obtener el recurso de la carpeta dibujable. Puedes ver más de
una carpeta dibujable, por ejemplo, drawable-hdpi, drawable-ldpi, etc. La razón
para múltiples carpetas es que tenemos una gran cantidad de máquinas cliente, algunas son
usando tablas, notas, móviles, etc. El tamaño y la resolución de la pantalla varían
cliente a cliente. Puedes crear tus iconos, imagen para diferentes
resolución y colóquelo en la carpeta correspondiente. Android OS lo hará
selecciona automáticamente la mejor imagen adecuada para mostrar.
@ drawable / header_bg_royal
significa obtener imagen / recurso header_bg_royal
.
android: text = “@ string / intent_title”: espero que haya entendido qué propósito tiene el signo @
y qué significa string después de él y qué intent_title
es. Antes de explicarlo nuevamente, déjenme explicar por qué necesito poner todo mi
cadenas en los archivos de recursos. Si codifico el texto de cualquier control
en el archivo xml, el Eclipse da una advertencia para moverlo al recurso
archivo. Puede ver la advertencia en la imagen a continuación, cuando configuro el
la propiedad de texto del botón es “Botón”, Eclipse está enviando un mensaje de advertencia a
moverlo al archivo de recursos de string
.
La pregunta es por qué debería ser un recurso de cadena. Aunque tú
puede codificarlo, pero no es una buena práctica de programación. Supongamos que
tener 10 ocurrencias de texto en diferentes actividades o diseño. por
cambiando ese texto, necesita ir a cada actividad / diseño y cambiar
allí. Si coloca ese texto en los recursos de cadena, entonces el cambio
Requiere solo un lugar. También puedes crear tu aplicación
multilingüe usando estos archivos de recursos.
@string/intent_title
significa obtener el valor de intent_title
del recurso de string
.
android: textColor = “@ color / white_color”: para
configurando el color anterior del texto, obtenga el valor de color del archivo de recursos.
En la siguiente sección conocerá cómo podemos agregar valor a los recursos.
archivo.
android: id = “@ + id / btn_phone_call”: si desea acceder a cualquier control en el código, asígnele un id. El signo +
con @
significa que si el recurso existe, úselo, de lo contrario, créelo. @+id/btn_phone_call
significa utilizar btn_phone_call
en el recurso id y, si existe, crearlo.
Archivo de recursos
Eclipse le proporciona una disposición para agregar recursos usando
diseñador. También puede usar la vista xml para agregar recursos. Puedes añadir
diferentes tipos de recursos, por ejemplo, cadena, color, matriz, etc. No iré
en el detalle de recursos en este artículo. Puedes leer más al respecto
en diferentes tutoriales.
Actividad
Es un concepto muy importante del desarrollo de Android. Un
La actividad representa la pantalla en una aplicación. Puedes usarlo en
diferentes formas como ventana flotante o incrustada dentro de otra actividad
etc. La clase debe ser heredada de la clase Activity
para su actividad. extends
palabra clave extends
se utiliza para la herencia en java.
Ocultar código de copia
clase pública MainActivity extiende la actividad {
@Anular
vacío protegido onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
}
@Anular
public boolean onCreateOptionsMenu (Menú del menú) {
// Inflar el menú; esto agrega elementos a la barra de acción si está presente.
getMenuInflater (). inflate (R.menu.activity_main, menu);
volver verdadero;
}
}
onCreate
método onCreate
se utiliza para inicializar su actividad. Por lo general, llamamos al método setContentView()
para definir el diseño de la actividad y también obtener controles de la interfaz de usuario utilizando findViewByid()
que son necesarios para interactuar mediante programación.
super.onCreate()
significa llamar al método onCreate
de la clase base. Super
se utiliza para acceder a la clase base en java. El diseño asociado con esta actividad está en activity_main.xml . Puede obtener la identificación de ese recurso utilizando R.layout.activity_main
. R
es la clase autogenerada que mantiene los recursos y la usamos para acceder a los recursos en código. setContentView(R.layout.activity_main)
establece el diseño para la actividad.
onCreateOptionsMenu()
método onCreateOptionsMenu()
se usa para manejar el menú de esa actividad. Lo explicaré más tarde.
Control de acceso / Vista en actividad
Después de configurar la vista de contenido de la actividad, puede obtener el control utilizando el findViewById(viewId)
. Toma el id de vista / control como parámetro y devuelve la vista que se encuentra. View
es
la clase base para widgets, que se utilizan para crear una interfaz de usuario interactiva
componentes (botones, campos de texto, etc.). Necesitamos transmitir la view
a los widgets originales.
Ocultar código de copia
Botón btnPhoneCall = (Botón) findViewById (R.id.btn_phone_call);
EditText txtName = (EditText) findViewById (R.id.txt_name);
En el código de ejemplo anterior findViewById(R.id.btn_phone_call)
encuentra el botón que ha pasado la identificación como parámetro y encuentra el
por id. Ahora, después de encontrarlo, podemos usar estas Vistas / Controles en nuestro código.
Ahora necesitamos registrar un evento de clic del botón y al hacer clic lo haremos
Abra la vista de llamada telefónica de Android.
Ocultar código de copia
btnPhoneCall.setOnClickListener (nuevo OnClickListener () {
@Anular
public void onClick (Ver v) {
onPhoneCallClick ();
}
});
Hay tres formas de implementar oyentes en Java y ellos
tienen sus propias ventajas y desventajas. Estas tres formas son
- Implementación en línea
- Usando la palabra clave implements
- Mediante el uso de variables
Puede estudiar sobre estas diferentes formas en Internet. En el
ejemplo anterior, registro el oyente para el botón usando Inline
implementación. Llame setOnClickListener()
método setOnClickListener()
del botón y pase OnClickListener
como parámetro. En el controlador OnClickListener
anule el evento onClick
. Cuando el usuario haga clic en el botón, llamará al evento onClick
. Puede escribir su código dentro de onClick
.
Intención
Intent
es el mensaje asincrónico que permite
componentes de Android para solicitar funcionalidad del otro componente de
El sistema Android. Representa el ‘Intento de hacer algo’ de una aplicación. Nosotros
puede usar intentos para diferentes tareas, por ejemplo, hacer una llamada, abrir un mapa, abrir
actividad, etc. Pero con mayor frecuencia se utilizan para comenzar otra actividad.
Cómo comenzar otra actividad
Hasta aquí, has aprendido sobre la actividad, los recursos de diseño y la intención. Cree otro nombre de actividad ” LifeCycleActivity
” y cree su diseño ” activity_life_cycle.xml
”
en la carpeta de diseño. Es mejor usar Eclipse para agregar actividad en su
aplicación que genera automáticamente el diseño para esa actividad y
ponga automáticamente la información necesaria de la actividad en el archivo ” AndroidManifest.xml “. De lo contrario, debe hacerlo manualmente. Haga clic derecho en su aplicación en el panel ” Package Explorer ” en el lado izquierdo y haga clic en Nuevo> Otro . Se abrirá una ventana emergente donde debe seleccionar ” Actividad de Android ” y, después de completar el asistente, creará una Actividad y un diseño predeterminado para usted.
Cree el objeto de la clase Intent y páselo al método startActivity()
. Intent
clase de Intent
tiene un tipo diferente de constructor, para iniciar la actividad, pasar contexto y clase de actividad al objeto. Clase de Activity
es la subclase de contexto, así que pasa esto como primer parámetro y el
pasar la clase sobre la cual el sistema debe entregar la intención. Luego
Pase esta intención al método startActivity()
y se iniciará su segunda actividad.
Ocultar código de copia
Intención intención = nueva intención (esto, LifeCycleActivity.class);
startActivity (intento);
Existen algunos otros métodos para comenzar la actividad. Puedes estudiar sobre ellos también.
- startActivityForResult (intento, código de solicitud)
- startActivityFromChild (child, intent, requestCode)
- startActivityFromFragment (fragmento, intento, código de solicitud)
Abrir marcador de teléfono
Lanzar el marcador del teléfono también es bastante fácil en Android.
enviar un mensaje al sistema operativo Android para ejecutar una aplicación específica con intención
Ocultar código de copia
Uri uri = Uri.parse (“tel: 03361122334”);
Intención intención = nueva intención (Intent.ACTION_VIEW, uri);
startActivity (intento);
Cuando crea un mensaje asincrónico (intentos) desde el Uri
, le dice al sistema que abra la actividad que puede manejar el esquema Uri
. En el ejemplo anterior, el Uri
comienza desde tel: carga una actividad desde la aplicación de marcado del teléfono con el número cargado.
Pasar datos a otra actividad
Puede pasar datos fácilmente con su mensaje asincrónico (intento)
cuando pasamos a la actividad del marcador telefónico. Pero pasamos al teléfono
actividad del marcador usando Uri
. También puede poner cadenas, números enteros u otros valores en intención y también puede poner su objeto de clase personalizado. Use el método intent.putExtra()
para poner información adicional en su intento. Este método tiene muchos métodos sobrecargados, use el método apropiado para sus datos.
Ocultar código de copia
Estudiante std = getStudent ();
Intención intención = nueva intención (esto, DetailActivity.class);
intent.putExtra (“estudiante”, (Serializable) std);
startActivity (intento);
La actividad ” DetailActivity
” que recibe la intención expone el método para recuperar la información adicional. El método getIntent()
devuelve la intención y luego puede obtener información adicional usando getExtras()
método. Este método devuelve el paquete y desde el paquete puede obtener
su información deseada utilizando métodos get según su tipo de información.
En este ejemplo, estoy llamando a “ (Student)bundle.getSerializable("student");
“Porque mi información era un objeto capaz de serializar y luego la devuelvo a mi objeto de clase concreto.
Ocultar código de copia
Paquete bundle = this.getIntent (). GetExtras ();
Student std = (Estudiante) bundle.getSerializable (“estudiante”);
Nombre de cadena = std.getName ();
Ciclo de vida de la actividad.
Para una correcta comprensión de las actividades, es necesario
Comprender el ciclo de vida de la actividad. Las actividades se gestionan en el
sistema como una pila de actividades. Cuando se inicia una nueva actividad, se coloca en
la parte superior de la pila y se convierte en la actividad de ejecución. El anterior
las actividades siempre permanecen debajo de ella en la pila y no llegarán a
frente hasta que exista la nueva actividad. A continuación se muestra la lista de métodos.
que llama a cada estado de la actividad.
Ocultar encogimiento
Código de copia
@Anular
vacío protegido onCreate (Bundle savedInstanceState) {
}
@Anular
vacío protegido onStart () {
}
@Anular
nulo protegido onRestart () {
}
@Anular
nulo protegido en Resume () {
}
@Anular
vacío protegido en pausa () {
}
@Anular
vacío protegido onStop () {
}
@Anular
nulo protegido en Destroy () {
}
onCreate()
llamado cuando se crea la actividad por primera vez. onStart()
llamado cuando la actividad es visible para el usuario y onResume()
llamado cuando la aplicación inicia la interacción con el usuario. En este punto, su actividad se encuentra en la parte superior de la pila de actividades.
onPause()
llama al método onPause()
cuando el sistema está a punto de
comenzar a reanudar la actividad anterior. Normalmente se usa para guardar el
datos no guardados para conservarlos, detener la animación u otro trabajo que pueda
consumir CPU.
onStop()
llama al método onStop()
cuando la actividad es no
ya no es visible para el usuario, porque se ha reanudado otra actividad
y está cubriendo este.
onRestart()
llamado después de que su actividad se haya detenido. Llamó antes de comenzar de nuevo.
onDestroy()
llamado antes de que su actividad sea destruida.
Crear menú
Para crear un menú, abra res / menu / activity_main.xml
archivo y agregue sus elementos de menú en él. Establecer id y título para cada elemento del menú
y luego puede manejar este elemento de menú por id en la clase de actividad.
Ocultar código de copia
android: id = “@ + id / menu_settings”
android: showAsAction = “nunca”
android: title = “@ string / menu_settings” />
android: id = “@ + id / menu_other”
android: showAsAction = “nunca”
android: title = “@ string / menu_other” />
android: id = “@ + id / menu_exit”
android: showAsAction = “nunca”
android: title = “@ string / menu_exit” />
Para manejar el método de clic del elemento del menú, anule el
onOptionsItemSelected (elemento MenuItem)
método en su actividad. Este método se activa siempre que el usuario
haga clic / seleccione cualquier elemento del menú. Para manejar diferentes acciones para cada
El elemento obtiene la identificación del elemento de menú seleccionado utilizando el método getItemId()
y realiza acciones para cada elemento de menú.
Ocultar encogimiento
Código de copia
@Anular
public boolean onOptionsItemSelected (elemento MenuItem) {
booleano manejado = falso;
int id = item.getItemId ();
interruptor (id)
{
case R.id.menu_settings:
{
Toast.makeText (esto, “Ha hecho clic en el elemento del menú de configuración”, Toast.LENGTH_SHORT) .show ();
manejado = verdadero;
descanso;
}
caso R.id.menu_other:
{
onOpenActivity ();
manejado = verdadero;
descanso;
}
caso R.id.menu_exit:
{
terminar();
manejado = verdadero;
descanso;
}
defecto:
{
manejado = super.onOptionsItemSelected (item);
}
}
devolución manejada;
}
Cada actividad puede tener su propio menú. Puede poner diferentes elementos de menú para
cada actividad y manejarla de manera diferente. Alguna actividad no puede tener ninguna
menú. Para esto, no anule el método onCreateOptionsMenu
en su actividad. En este método, menuInflater
elementos del menú a menuInflater
.
Leer más: empresa de desarrollo de aplicaciones de Android