13
Navigation sgoliver.net blog Pensamientos varios sobre programación, Android, .NET y Java Desarrollando una aplicación Android sencilla (Android Studio) by Sgoliver on 16/01/2015 in Android, Programación El ritmo de actualizaciones de Android Studio es bastante alto, por lo que algunos detalles de este artículo pueden no ajustarse exactamente a la última versión de la aplicación. Este artículo se encuentra actualizado para la versión de Android Studio 1.0.2 Después de instalar nuestro entorno de desarrollo para Android y comentar la estructura básica de un proyecto y los diferentes componentes software que podemos utilizar ya es hora de empezar a escribir algo de código. Y como siempre lo mejor es empezar por escribir una aplicación sencilla. En un principio me planteé analizar en este capítulo el clásico Hola Mundo pero más tarde me pareció que se iban a quedar algunas cosas básicas en el tintero. Así que he versionado a mi manera el Hola Mundo transformándolo en algo así como un Hola Usuario, que es igual de sencilla pero añade un par de cosas interesantes de contar. La aplicación 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 e inútil, pero aprenderemos muchos conceptos básicos, que para empezar no está mal. Por dibujarlo para entender mejor lo que queremos conseguir, sería algo tan sencillo como lo siguiente: Vamos a partir del proyecto de ejemplo que creamos en un apartado anterior, al que casualmente llamamos HolaUsuario. Como ya vimos Android Studio había creado por nosotros la estructura de carpetas del proyecto y todos los ficheros necesarios de un Hola Mundo básico, es decir, una sola pantalla donde se muestra únicamente un mensaje fijo. Lo primero que vamos a hacer es diseñar nuestra pantalla principal modificando la que Android Studio nos ha creado por defecto. Aunque ya lo hemos comentado de pasada, recordemos dónde y cómo se define cada pantalla de la aplicación. En Android, el diseño y la lógica de una pantalla están separados en dos ficheros distintos. Por un lado, en el fichero /src/main/res/layout/activity_main.xml tendremos el diseño puramente visual de la pantalla definido como fichero XML y por otro lado, en el fichero /src/main/java/paquete.java/MainActivity.java, encontraremos el código java que determina la lógica de la pantalla. Vamos a modificar en primer lugar el aspecto de la ventana principal de la aplicación añadiendo los controles (views) que vemos en el esquema mostrado al principio del apartado. Para ello, vamos a sustituir el contenido del fichero activity_main.xml por el siguiente: Al pegar este código en el fichero de layout aparecerán algunos errores marcados en rojo, en los valores de los atributos android:text. Es normal, lo arreglaremos pronto. 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. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LytContenedor" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/LblNombre" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/nombre" /> <EditText android:id="@+id/TxtNombre" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" /> <Button android:id="@+id/BtnAceptar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/aceptar" /> </LinearLayout>

4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Embed Size (px)

Citation preview

Page 1: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Navigation

sgolivernet blogPensamientos varios sobre programacioacuten Android NET y Java

Desarrollando una aplicacioacuten Android sencilla (Android Studio)by Sgoliver on 16012015 in Android Programacioacuten

El ritmo de actualizaciones de Android Studio es bastante alto por lo que algunos detalles de este artiacuteculo pueden no ajustarseexactamente a la uacuteltima versioacuten de la aplicacioacuten Este artiacuteculo se encuentra actualizado para la versioacuten de Android Studio 102

Despueacutes de instalar nuestro entorno de desarrollo para Android y comentar la estructura baacutesica de un proyecto y losdiferentes componentes software que podemos utilizar ya es hora de empezar a escribir algo de coacutedigo Y como siempre lo mejor esempezar por escribir una aplicacioacuten sencilla

En un principio me planteeacute analizar en este capiacutetulo el claacutesico Hola Mundo pero maacutes tarde me parecioacute que se iban a quedar algunascosas baacutesicas en el tintero Asiacute que he versionado a mi manera el Hola Mundo transformaacutendolo en algo asiacute como un Hola Usuario que esigual de sencilla pero antildeade un par de cosas interesantes de contar La aplicacioacuten constaraacute de dos pantallas por un lado la pantallaprincipal que solicitaraacute un nombre al usuario y una segunda pantalla en la que se mostraraacute un mensaje personalizado para el usuario Asiacutede sencillo e inuacutetil pero aprenderemos muchos conceptos baacutesicos que para empezar no estaacute mal

Por dibujarlo para entender mejor lo que queremos conseguir seriacutea algo tan sencillo como lo siguiente

Vamos a partir del proyecto de ejemplo que creamos en un apartado anterior al que casualmente llamamos HolaUsuario

Como ya vimos Android Studio habiacutea creado por nosotros la estructura de carpetas del proyecto y todos los ficheros necesarios deun Hola Mundo baacutesico es decir una sola pantalla donde se muestra uacutenicamente un mensaje fijo

Lo primero que vamos a hacer es disentildear nuestra pantalla principal modificando la que Android Studio nos ha creado por defecto Aunqueya lo hemos comentado de pasada recordemos doacutende y coacutemo se define cada pantalla de la aplicacioacuten En Android el disentildeo y la loacutegicade una pantalla estaacuten separados en dos ficheros distintos Por un lado en el fichero srcmainreslayoutactivity_mainxml tendremos eldisentildeo puramente visual de la pantalla definido como fichero XML y por otro lado en el fichero srcmainjavapaquetejavaMainActivityjava encontraremos el coacutedigo java que determina la loacutegica de la pantalla

Vamos a modificar en primer lugar el aspecto de la ventana principal de la aplicacioacuten antildeadiendo los controles (views) que vemos en elesquema mostrado al principio del apartado Para ello vamos a sustituir el contenido del fichero activity_mainxml por el siguiente

Al pegar este coacutedigo en el fichero de layout apareceraacuten algunos errores marcados en rojo en los valores de los atributos androidtextEs normal lo arreglaremos pronto

En este XML se definen los elementos visuales que componen la interfaz de nuestra pantalla principal y se especifican todas suspropiedades No nos detendremos mucho por ahora en cada detalle pero expliquemos un poco lo que vemos en el fichero

123456789

10111213141516171819202122

ltLinearLayout xmlnsandroid=httpschemasandroidcomapkresandroid androidid=+idLytContenedor androidlayout_width=match_parent androidlayout_height=match_parent androidorientation=vertical gt ltTextView androidid=+idLblNombre androidlayout_width=wrap_content androidlayout_height=wrap_content androidtext=stringnombre gt ltEditText androidid=+idTxtNombre androidlayout_width=match_parent androidlayout_height=wrap_content androidinputType=text gt ltButton androidid=+idBtnAceptar androidlayout_width=wrap_content androidlayout_height=wrap_content androidtext=stringaceptar gt ltLinearLayoutgt

Lo primero que nos encontramos es un elemento LinearLayout Los layout son elementos no visibles que determinan coacutemo se van adistribuir en el espacio los controles que incluyamos en su interior Los programadores java y maacutes concretamente de Swing conoceraacuteneste concepto perfectamente En este caso un LinearLayout distribuiraacute los controles simplemente uno tras otro y en la orientacioacuten queindique su propiedad androidorientation que en este caso seraacute ldquoverticalrdquo

Dentro del layout hemos incluido 3 controles una etiqueta (TextView) un cuadro de texto (EditText) y un botoacuten (Button) En todosellos hemos establecido las siguientes propiedades

androidid ID del control con el que podremos identificarlo maacutes tarde en nuestro coacutedigo Vemos que el identificador lo escribimosprecedido de ldquo+idrdquo Esto tendraacute como efecto que al compilarse el proyecto se genere automaacuteticamente una nueva constante en laclase R para dicho control Asiacute por ejemplo como al cuadro de texto le hemos asignado el ID TxtNombre podremos maacutes tardeacceder al eacutel desde nuestro coacutedigo haciendo referencia a la constante RidTxtNombreandroidlayout_height y androidlayout_width Dimensiones del control con respecto al layout que lo contiene (height=altowidth=ancho) Esta propiedad tomaraacute normalmente los valores ldquowrap_contentrdquo para indicar que las dimensiones del control seajustaraacuten al contenido del mismo o bien ldquomatch_parentrdquo para indicar que el ancho o el alto del control se ajustaraacute al alto o ancho dellayout contenedor respectivamente

Ademaacutes de estas propiedades comunes a casi todos los controles que utilizaremos en el cuadro de texto hemos establecido tambieacuten lapropiedad androidinputType que indica queacute tipo de contenido va a albergar el control en este caso seraacute texto normal (valor ldquotextrdquo)aunque podriacutea haber sido una contrasentildea (valor ldquotextPasswordldquo) un teleacutefono (ldquophoneldquo) una fecha (ldquodateldquo) hellip

Por uacuteltimo en la etiqueta y el botoacuten hemos establecido la propiedad androidtext que indica el texto que aparece en el control Y aquiacutenos vamos a detener un poco ya que tenemos dos alternativas a la hora de hacer esto En Android el texto de un control se puedeespecificar directamente como valor de la propiedad androidtext o bien utilizar alguna de las cadenas de texto definidas en losrecursos del proyecto (como ya vimos en el fichero stringsxml) en cuyo caso indicaremos como valor de lapropiedad androidtext su identificador precedido del prefijo ldquostringrdquo Dicho de otra forma la primera alternativa habriacutea sido indicardirectamente el texto como valor de la propiedad por ejemplo en la etiqueta de esta forma

Y la segunda alternativa la utilizada en el ejemplo consistiriacutea en definir primero una nueva cadena de texto en el fichero de recursossrcmainresvaluesstringsxml por ejemplo con identificador ldquonombrerdquo y valor ldquoEscribe tu nombrerdquo

Y posteriormente indicar el identificador de la cadena como valor de la propiedad androidtext siempre precedido del prefijoldquostringrdquo de la siguiente forma

Esta segunda alternativa nos permite tener perfectamente localizadas y agrupadas todas las cadenas de texto utilizadas en la aplicacioacutenlo que nos podriacutea facilitar por ejemplo la traduccioacuten de la aplicacioacuten a otro idioma Haremos esto para las dos cadenas de texto utilizadasen el layout ldquonombrerdquo y ldquoaceptarrdquo Una vez incluidas ambas cadenas de texto en el fichero stringsxml deberiacutean desaparecer los doserrores marcados en rojo que nos aparecieron antes en la ventana activity_mainxml

Con esto ya tenemos definida la presentacioacuten visual de nuestra ventana principal de la aplicacioacuten veamos ahora la loacutegica de la mismaComo ya hemos comentado la loacutegica de la aplicacioacuten se definiraacute en ficheros java independientes Para la pantalla principal ya tenemoscreado un fichero por defecto llamado MainActivityjava Empecemos por comentar su coacutedigo por defecto

12345

ltTextView androidid=+idLblNombre androidlayout_width=wrap_content androidlayout_height=wrap_content androidtext=Escribe tu nombre gt

12345

ltresourcesgt ltstring name=nombregtEscribe tu nombreltstringgt ltresourcesgt

12345

ltTextView androidid=+idLblNombre androidlayout_width=wrap_content androidlayout_height=wrap_content androidtext=stringnombre gt

123456789

101112131415161718192021

package netsgoliverandroidholausuario import androidsupportv7appActionBarActivityimport androidosBundleimport androidviewMenuimport androidviewMenuItem public class MainActivity extends ActionBarActivity Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Override public boolean onCreateOptionsMenu(Menu menu) Inflate the menu this adds items to the action bar if it is present getMenuInflater()inflate(Rmenumenu_main menu) return true

Como ya vimos en un apartado anterior las diferentes pantallas de una aplicacioacuten Android se definen mediante objetos de tipo ActivityPor tanto lo primero que encontramos en nuestro fichero java es la definicioacuten de una nueva clase MainActivity que extiende en estecaso de un tipo especial de Activity llamado ActionBarActivity que soporta la utilizacioacuten de la Action Bar en nuestras aplicaciones(la action bar es la barra de tiacutetulo y menuacute superior que se utiliza en la mayoriacutea de aplicaciones Android) El uacutenico meacutetodo quemodificaremos por ahora de esta clase seraacute el meacutetodo onCreate() llamado cuando se crea por primera vez la actividad En este meacutetodolo uacutenico que encontramos en principio ademaacutes de la llamada a su implementacioacuten en la clase padre es la llamada almeacutetodo setContentView(Rlayoutactivity_main) Con esta llamada estaremos indicando a Android que debe establecer comointerfaz graacutefica de esta actividad la definida en el recurso Rlayoutactivity_main que no es maacutes que la que hemos especificado en elfichero srcmainreslayoutactivity_mainxml Una vez maacutes vemos la utilidad de las diferentes constantes de recursos creadasautomaacuteticamente en la clase R al compilar el proyecto

Ademaacutes del meacutetodo onCreate() vemos que tambieacuten se sobrescriben los meacutetodos onCreateOptionsMenu() yonOptionsItemSelected() que se utilizan para definir y gestionar los menuacutes de la aplicacioacuten yo las opciones de la action bar Por elmomento no tocaremos estos meacutetodos maacutes adelante en el curso nos ocuparemos de estos temas

Antes de modificar el coacutedigo de nuestra actividad principal vamos a crear una nueva actividad para la segunda pantalla de la aplicacioacutenanaacuteloga a eacutesta primera a la que llamaremos SaludoActivity

Para ello pulsaremos el botoacuten derecho sobre la carpeta srcmainjavatupaquetejava y seleccionaremos la opcioacuten de menuacute New Activity Blank Activity

En el cuadro de diaacutelogo que aparece indicaremos el nombre de la actividad en nuestro caso SaludoActivity el nombre de su layoutXML asociado (Android Studio crearaacute al mismo tiempo tanto el layout XML como la clase java) que llamaremos activity_saludo eltiacutetulo de la actividad que apareceraacute en la action bar El resto de opciones las podemos dejar por ahora con sus valores por defecto

Pulsaremos Finish y Android Studio crearaacute los nuevos ficheros SaludoActivityjava y activity_saludoxml en sus carpetascorrespondientes

De igual forma que hicimos con la actividad principal definiremos en primer lugar la interfaz de la segunda pantalla abriendo elfichero activity_saludoxml y antildeadiendo esta vez tan soacutelo un LinearLayout como contenedor y una etiqueta (TextView) para mostrar elmensaje personalizado al usuario

Para esta segunda pantalla el coacutedigo que incluiriacuteamos seriacutea el siguiente

22232425262728293031323334353637

Override public boolean onOptionsItemSelected(MenuItem item) Handle action bar item clicks here The action bar will automatically handle clicks on the HomeUp button so long as you specify a parent activity in AndroidManifestxml int id = itemgetItemId() noinspection SimplifiableIfStatement if (id == Ridaction_settings) return true return superonOptionsItemSelected(item)

123456789

ltLinearLayout xmlnsandroid=httpschemasandroidcomapkresandroid androidid=+idLytContenedorSaludo androidlayout_width=match_parent androidlayout_height=match_parent androidorientation=vertical gt ltTextView androidid=+idTxtSaludo androidlayout_width=wrap_content androidlayout_height=wrap_content

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Sigamos Por ahora el coacutedigo incluido en estas clases lo uacutenico que hace es generar la interfaz de la actividad A partir de aquiacute nosotrostendremos que incluir el resto de la loacutegica de la aplicacioacuten

Y vamos a empezar con la actividad principal MainActivity obteniendo una referencia a los diferentes controles de la interfaz quenecesitemos manipular en nuestro caso soacutelo el cuadro de texto y el botoacuten Para ello definiremos ambas referencias como atributos de laclase y para obtenerlas utilizaremos el meacutetodo findViewById() indicando el ID de cada control definidos como siempre en la clase RTodo esto lo haremos dentro del meacutetodo onCreate() de la clase MainActivity justo a continuacioacuten de la llamadaa setContentView() que ya comentamos

Como vemos hemos antildeadido tambieacuten varios import adicionales (los de las clases Button y EditText) para tener acceso a todas lasclases utilizadas

Una vez tenemos acceso a los diferentes controles ya soacutelo nos queda implementar las acciones a tomar cuando pulsemos el botoacuten de lapantalla Para ello continuando el coacutedigo anterior y siempre dentro del meacutetodo onCreate() implementaremos el evento onClick dedicho botoacuten Este botoacuten tendraacute que ocuparse de abrir la actividad SaludoActivity pasaacutendole toda la informacioacuten necesaria Veamoscoacutemo

101112

androidtext= gt ltLinearLayoutgt

123456789

10

public class SaludoActivity extends ActionBarActivity Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_saludo)

123456789

1011121314151617181920212223

package netsgoliverandroidholausuario import androidwidgetButtonimport androidwidgetEditText public class MainActivity extends ActionBarActivity private EditText txtNombre private Button btnAceptar Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Obtenemos una referencia a los controles de la interfaz txtNombre = (EditText)findViewById(RidTxtNombre) btnAceptar = (Button)findViewById(RidBtnAceptar)

123456789

1011121314151617181920212223242526272829303132

package netsgoliverandroidholausuario import androidcontentIntent public class MainActivity extends ActionBarActivity private EditText txtNombre private Button btnAceptar Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Obtenemos una referencia a los controles de la interfaz txtNombre = (EditText)findViewById(RidTxtNombre) btnAceptar = (Button)findViewById(RidBtnAceptar) Implementamos el evento click del botoacuten btnAceptarsetOnClickListener(new ViewOnClickListener() Override public void onClick(View v) Creamos el Intent Intent intent = new Intent(MainActivitythis SaludoActivityclass) Creamos la informacioacuten a pasar entre actividades Bundle b = new Bundle() bputString(NOMBRE txtNombregetText()toString())

Como ya indicamos en el apartado anterior la comunicacioacuten entre los distintos componentes y aplicaciones en Android se realizamediante intents por lo que el primer paso seraacute crear un objeto de este tipo Existen varias variantes del constructor de la clase Intentcada una de ellas dirigida a unas determinadas acciones En nuestro caso particular vamos a utilizar el intent para iniciar una actividaddesde otra actividad de la misma aplicacioacuten para lo que pasaremos a su constructor una referencia a la propiaactividad llamadora (MainActivitythis) y la clase de la actividad llamada (SaludoActivityclass)

Si quisieacuteramos tan soacutelo mostrar una nueva actividad ya tan soacutelo nos quedariacutea llamar a startActivity() pasaacutendole como paraacutemetro elintent creado Pero en nuestro ejemplo queremos tambieacuten pasarle cierta informacioacuten a la actividad llamada concretamente el nombre queintroduzca el usuario en el cuadro de texto de la pantalla principal Para hacer esto vamos a crear un objeto Bundle que puede conteneruna lista de pares claveshyvalor con toda la informacioacuten a pasar entre actividades En nuestro caso soacutelo antildeadiremos un dato detipo String mediante el meacutetodo putString(clave valor) Como clave para nuestro dato yo he elegido el literal ldquoNOMBRErdquo aunquepodeacuteis utilizar cualquier otro literal descriptivo Por su parte el valor de esta clave lo obtendremos consultando el contenido del cuadro detexto de la actividad principal lo que podemos conseguir llamando a su meacutetodo getText() y convirtiendo este contenido a texto mediantetoString() (maacutes adelante en el curso veremos por queacute es necesaria esta conversioacuten)

Tras esto antildeadiremos la informacioacuten al intent mediante el meacutetodo putExtras() Si necesitaacuteramos pasar maacutes datos entre una actividad yotra no tendriacuteamos maacutes que repetir estos pasos para todos los paraacutemetros necesarios

Con esto hemos finalizado ya actividad principal de la aplicacioacuten por lo que pasaremos ya a la secundaria Comenzaremos de formaanaacuteloga a la anterior ampliando el meacutetodo onCreate() obteniendo las referencias a los objetos que manipularemos esta vez soacutelo laetiqueta de texto Tras esto viene lo maacutes interesante debemos recuperar la informacioacuten pasada desde la actividad principal y asignarlacomo texto de la etiqueta Para ello accederemos en primer lugar al intent que ha originado la actividad actual mediante elmeacutetodo getIntent() y recuperaremos su informacioacuten asociada (objeto Bundle) mediante el meacutetodo getExtras()

Hecho esto tan soacutelo nos queda construir el texto de la etiqueta mediante su meacutetodo setText(texto) y recuperando el valor de nuestraclave almacenada en el objeto Bundle mediante getString(clave)

Con esto hemos concluido la loacutegica de las dos pantallas de nuestra aplicacioacuten y tan soacutelo nos queda un paso importante para finalizarnuestro desarrollo Como ya indicamos en un apartado anterior toda aplicacioacuten Android utiliza un fichero especial en formato XML(AndroidManifestxml) para definir entre otras cosas los diferentes elementos que la componen Por tanto todas las actividades denuestra aplicacioacuten deben quedar convenientemente definidas en este fichero En este caso Android Studio se debe haber ocupado pornosotros de definir ambas actividades en el fichero pero lo revisaremos para asiacute echar un vistazo al contenido

Si abrimos el fichero AndroidManifestxml veremos que contiene un elemento principal ltApplicationgt que debe incluir varios elementosltActivitygt uno por cada actividad incluida en nuestra aplicacioacuten En este caso comprobamos como efectivamente Android Studio ya seha ocupado de esto por nosotros aunque este fichero siacute podriacuteamos modificarlo a mano para hacer ajustes si fuera necesario

333435363738394041

Antildeadimos la informacioacuten al intent intentputExtras(b) Iniciamos la nueva actividad startActivity(intent) )

123456789

1011121314151617181920212223242526

package netsgoliverandroidholausuario import androidwidgetTextView public class SaludoActivity extends ActionBarActivity private TextView txtSaludo Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_saludo) Localizar los controles txtSaludo = (TextView)findViewById(RidTxtSaludo) Recuperamos la informacioacuten pasada en el intent Bundle bundle = thisgetIntent()getExtras() Construimos el mensaje a mostrar txtSaludosetText(Hola + bundlegetString(NOMBRE))

123456789

10

ltmanifest xmlnsandroid=httpschemasandroidcomapkresandroid package=netsgoliverandroidholausuario gt ltapplication androidallowBackup=true androidicon=drawableic_launcher androidlabel=stringapp_name androidtheme=styleAppTheme gt ltactivity androidname=MainActivity

Podemos ver como para cada actividad se indica entre otras cosas el nombre de su clase java asociada como valor delatributo androidname y su tiacutetulo mediante el atributo androidlabel maacutes adelante veremos queacute opciones adicionales podemosespecificar Vemos una vez maacutes coacutemo el tiacutetulo de las actividades se indica como referencia a cadenas de caracteres definidas comorecursos que deben estar incluidas como ya hemos comentado anteriormente en el fichero mainresvaluesstringsxml

El uacuteltimo elemento que revisaremos de nuestro proyecto aunque tampoco tendremos que modificarlo por ahora seraacute el ficherobuildgradle Pueden existir varios ficheros llamados asiacute en nuestra estructura de carpetas a distintos niveles pero normalmente siempreaccederemos al que estaacute al nivel maacutes interno en nuestro caso el que estaacute dentro del moacutedulo ldquoapprdquo Veamos queacute contiene

Gradle es el nuevo sistema de compilacioacuten y construccioacuten que ha adoptado Google para Android Studio Pero no es un sistema especiacuteficode Android sino que puede utilizarse con otros lenguajesplataformas Por tanto lo primero que indicamos en este fichero es queutilizaremos el plugin para Android mediante la sentencia ldquoapply pluginldquo A continuacioacuten definiremos varias opciones especiacuteficas deAndroid como las versiones de la API miacutenima (minSdkVersion) API objetivo (targetSdkVersion) y API de compilacioacuten(compileSdkVersion) que utilizaremosen el proyecto la versioacuten de las build tools (buildToolsVersion) que queremos utilizar (es unode los componentes que podemos descargaractualizar desde el SDK Manager) la versioacuten tanto interna (versionCode) como visible(versionName) de la aplicacioacuten o la configuracioacuten de ProGuard si estamos haciendo uso de eacutel (no nos preocupamos por ahora de esto)Durante el curso iremos viendo con maacutes detalle todos estos elementos El ultimo elemento llamado ldquodependenciesrdquo tambieacuten esimportante y nos serviraacute entre otras cosas para definir las libreriacuteas externas que utilizaremos en la aplicacioacuten Por defecto vemos que seantildeade la libreriacutea de compatibilidad appcompat que nos permite utilizar la Action Bar en la mayoriacutea de versiones de Android y todos losfichero jar que incluyamos en la carpeta libs

Llegados aquiacute y si todo ha ido bien deberiacuteamos poder ejecutar el proyecto sin errores y probar nuestra aplicacioacuten en el emulador peropara ello tendremos que definir primero uno Vamos a describir los pasos para hacerlo

Para poder probar aplicaciones Android en nuestro PC sin tener que recurrir a un dispositivo fiacutesico tenemos que definir lo que sedenominan AVD (Android Virtual Device) Para crear un AVD seleccionaremos el menuacute Tools Android AVD Manager Si es la primeravez que accedemos a esta herramienta veremos la pantalla siguiente

Pulsando el botoacuten central ldquoCreate a virtual devicerdquo accederemos al asistente para crear un AVD En el primer paso tendremos queseleccionar a la izquierda queacute tipo de dispositivo queremos que ldquosimulerdquo nuestro AVD (teleacutefono tablet reloj hellip) y el tamantildeo resolucioacuten ydensidad de piacutexeles de su pantalla En mi caso seleccionareacute por ejemplo las caracteriacutesticas de un Nexus 4 y pasaremos al siguiente pasopulsando ldquoNextldquo

111213141516171819202122

androidlabel=stringapp_name gt ltintent‐filtergt ltaction androidname=androidintentactionMAIN gt ltcategory androidname=androidintentcategoryLAUNCHER gt ltintent‐filtergt ltactivitygt ltactivity androidname=SaludoActivity androidlabel=stringtitle_activity_saludo gt ltactivitygt ltapplicationgtltmanifestgt

123456789

10111213141516171819202122232425

apply plugin comandroidapplication android compileSdkVersion 21 buildToolsVersion 2112 defaultConfig applicationId netsgoliverandroidholausuario minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName 10 buildTypes release minifyEnabled false proguardFiles getDefaultProguardFile(proguard‐androidtxt) proguard‐rulespro dependencies compile fileTree(dir libs include [jar]) compile comandroidsupportappcompat‐v72103

En la siguiente pantalla seleccionaremos la versioacuten de Android que utilizaraacute el AVD Apareceraacuten directamente disponibles las queinstalamos desde el SDK Manager al instalar el entorno aunque tenemos la posibilidad de descargar e instalar nuevas versiones desdeesta misma pantalla En mi caso utilizareacute KitKat (API 19) para este primer AVD (podemos crear tantos como queramos para probarnuestras aplicaciones sobre distintas condiciones)

En el siguiente paso del asistente podremos configurar algunas caracteriacutesticas maacutes del AVD como por ejemplo la cantidad de memoriaque tendraacute disponible si simularaacute tener caacutemara frontal yo trasera teclado fiacutesico hellip Recomiendo pulsar el botoacuten ldquoShow AdvancedSettingsrdquo para ver todas las opciones disponibles Si quieres puedes ajustar cualquiera de estos paraacutemetros pero por el momento osrecomiendo dejar todas las opciones por defecto Tan soacutelo nos aseguraremos de tener activada la opcioacuten ldquoUse Host GPUrdquo con la quenormalmente conseguiremos un mayor rendimiento del emulador

Tras pulsar el botoacuten Finish tendremos ya configurado nuestro AVD por lo que podremos comenzar a probar nuestras aplicaciones sobreeacutel

Para ello pulsaremos simplemente el menuacute Run Run lsquoapprsquo (o la tecla raacutepida Mayuacutes+F10) Android Studio nos preguntaraacute en queacutedispositivo queremos ejecutar la aplicacioacuten y nos mostraraacute dos listas La primera de ellas con los dispositivos que haya en ese momentoen funcionamiento (por ejemplo si ya teniacuteamos un emulador funcionando) y una lista desplegable con el resto de AVDs configurados ennuestro entorno Podremos seleccionar cualquiera de los emuladores disponibles en cualquiera de las dos listas Lo normal seraacutemantener un emulador siempre abierto y seleccionarlo de la primera lista cada vez que ejecutemos la aplicacioacuten

Elegireacute para este ejemplo el AVD que acabamos de crear y configurar Es posible que la primera ejecucioacuten se demore unos minutos tododependeraacute de las caracteriacutesticas de vuestro PC asiacute que paciencia

Estructura de un proyecto Android (Android Studio) Controles de seleccioacuten (V) RecyclerView

Si todo va bien tras una pequentildea (o no tan pequentildea) espera apareceraacute el emulador de Android y se iniciaraacute automaacuteticamente nuestraaplicacioacuten (si se inicia el emulador pero no se ejecuta automaacuteticamente la aplicacioacuten podemos volver a ejecutarla desde Android Studiomediante el menuacute Run sin cerrar el emulador ya abierto)

Podemos probar a escribir un nombre y pulsar el botoacuten ldquoAceptarrdquo para comprobar si el funcionamiento es el correcto

Y con esto terminamos por ahora Espero que esta aplicacioacuten de ejemplo os sea de ayuda para aprender temas baacutesicos en el desarrollopara Android como por ejemplo la definicioacuten de la interfaz graacutefica el coacutedigo java necesario para acceder y manipular los elementos dedicha interfaz y la forma de comunicar diferentes actividades de Android En los apartados siguientes veremos algunos de estos temas deforma mucho maacutes especiacutefica

Podeacuteis consultar online y descargar el coacutedigo fuente completo de este artiacuteculo desde github

Comparte esta entrada

Facebook Twitter Google Correo electroacutenico

SuscriacutebeteSubscribe to our eshymail newsletter to receive updates

Related Posts

Actionbar Appbar Toolbar en Android (I)Interfaz de usuario en Android CardViewControles de seleccioacuten (V) RecyclerViewEstructura de un proyecto Android (Android Studio)Entorno de desarrollo Android (Android Studio)

Android Studio aplicacioacuten baacutesicos conceptos curso android ejemplo primera sencillo

29 Responses to Desarrollando una aplicacioacuten Android sencilla (Android Studio)

Carlos 20012015 at 212

Hola una consultaen el metodo SaludoActivity de la clase SaludoActivityjava cuando declaro lo siguiente

private TextView txtSaludo

me muestra en color violeta esa variable y con el msj ldquoField can be converted to a local variablerdquoy luego en el mismo metodo y en la siguiente linea

txtSaludo = (TextView)findViewById(RidTxtSaludo)

me marca la TxtSaludo en rojo con el msj ldquocannot resolve the symbol lsquoTxtSaludorsquo rdquocomo lo soluciono y porque paso eso

Kazama 20012015 at 523

Excelente tutorial hasta aca todo bien conmigo solo q tuve q agregar una libreriaimport androidviewViewen el MainActivity

y me corrio excelente otro comentario es que tuve problemas con HAXM pero ya lo resolvi y tambien con correrla desde mi movil (Samsung GTshyS6010)conectado a USB por modo depuracion pero al final logre solucionar eso tambien

seguire por aca leyendo y dejando mis comentarios de antemano Mil gracias

Francisco 24012015 at 507

Hola muy buen tutorial esta explicado exelentementehellip

Tengo una duda no puedo ejecutar el emulador no puedo instalarlo no es compatible me dice Tengo un procesador amd iquestse podraacute instalar

Joel 24012015 at 1718

Excelente tutorial he realizado mi primer ejemplo en Android gracias a este magnifico tutorial detallado magnifcamente

Tuve ciertos inconvenientes que los resolvi con mucha perseverancia y lectura y que me ayudo a conocer mejor el lenguaje

Uno de los temas que mas tuve problemas fue con la constante ldquoRrdquo que el sistema no la veia

Lo recomiendo muy bueno

javier 27012015 at 150

A mi me estaacute pasando que siguiendo el tutorial no consigo que la Ridhelliphellip me aparezca en negro todo el rato la R la tengo en rojo y pone elsiguiente texto situaacutendome encimaCannot resolve symbol lsquoRrsquo

Podriacuteais indicarme coacutemo solucionarlo No seacute queacute estoy haciendo malhellip

Mil gracias de antemano

Saludos

Oscar 29012015 at 2237

Hola no entiendo que siginifca el parametro v en public void onClick(View v)

Rodrigo 31012015 at 1943

Veniacuteas explicando muy bien hasta que derrapaste como un campeoacuten en

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Siendo nuevo hasta ahiacute entendiacute perfectamente de ahiacute te olvidaste de explicar bien donde copiar cada uno de los coacutedigos que vas dictando Al principio loexplicabas muy bien despueacutes te fuiste al carajo

admin 31012015 at 2209

Me alegra recibir criacuteticas tan constructivas Al final de cada artiacuteculo teneacuteis el enlace (GitHub) al coacutedigo completo del ejemplo descrito que

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 2: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Lo primero que nos encontramos es un elemento LinearLayout Los layout son elementos no visibles que determinan coacutemo se van adistribuir en el espacio los controles que incluyamos en su interior Los programadores java y maacutes concretamente de Swing conoceraacuteneste concepto perfectamente En este caso un LinearLayout distribuiraacute los controles simplemente uno tras otro y en la orientacioacuten queindique su propiedad androidorientation que en este caso seraacute ldquoverticalrdquo

Dentro del layout hemos incluido 3 controles una etiqueta (TextView) un cuadro de texto (EditText) y un botoacuten (Button) En todosellos hemos establecido las siguientes propiedades

androidid ID del control con el que podremos identificarlo maacutes tarde en nuestro coacutedigo Vemos que el identificador lo escribimosprecedido de ldquo+idrdquo Esto tendraacute como efecto que al compilarse el proyecto se genere automaacuteticamente una nueva constante en laclase R para dicho control Asiacute por ejemplo como al cuadro de texto le hemos asignado el ID TxtNombre podremos maacutes tardeacceder al eacutel desde nuestro coacutedigo haciendo referencia a la constante RidTxtNombreandroidlayout_height y androidlayout_width Dimensiones del control con respecto al layout que lo contiene (height=altowidth=ancho) Esta propiedad tomaraacute normalmente los valores ldquowrap_contentrdquo para indicar que las dimensiones del control seajustaraacuten al contenido del mismo o bien ldquomatch_parentrdquo para indicar que el ancho o el alto del control se ajustaraacute al alto o ancho dellayout contenedor respectivamente

Ademaacutes de estas propiedades comunes a casi todos los controles que utilizaremos en el cuadro de texto hemos establecido tambieacuten lapropiedad androidinputType que indica queacute tipo de contenido va a albergar el control en este caso seraacute texto normal (valor ldquotextrdquo)aunque podriacutea haber sido una contrasentildea (valor ldquotextPasswordldquo) un teleacutefono (ldquophoneldquo) una fecha (ldquodateldquo) hellip

Por uacuteltimo en la etiqueta y el botoacuten hemos establecido la propiedad androidtext que indica el texto que aparece en el control Y aquiacutenos vamos a detener un poco ya que tenemos dos alternativas a la hora de hacer esto En Android el texto de un control se puedeespecificar directamente como valor de la propiedad androidtext o bien utilizar alguna de las cadenas de texto definidas en losrecursos del proyecto (como ya vimos en el fichero stringsxml) en cuyo caso indicaremos como valor de lapropiedad androidtext su identificador precedido del prefijo ldquostringrdquo Dicho de otra forma la primera alternativa habriacutea sido indicardirectamente el texto como valor de la propiedad por ejemplo en la etiqueta de esta forma

Y la segunda alternativa la utilizada en el ejemplo consistiriacutea en definir primero una nueva cadena de texto en el fichero de recursossrcmainresvaluesstringsxml por ejemplo con identificador ldquonombrerdquo y valor ldquoEscribe tu nombrerdquo

Y posteriormente indicar el identificador de la cadena como valor de la propiedad androidtext siempre precedido del prefijoldquostringrdquo de la siguiente forma

Esta segunda alternativa nos permite tener perfectamente localizadas y agrupadas todas las cadenas de texto utilizadas en la aplicacioacutenlo que nos podriacutea facilitar por ejemplo la traduccioacuten de la aplicacioacuten a otro idioma Haremos esto para las dos cadenas de texto utilizadasen el layout ldquonombrerdquo y ldquoaceptarrdquo Una vez incluidas ambas cadenas de texto en el fichero stringsxml deberiacutean desaparecer los doserrores marcados en rojo que nos aparecieron antes en la ventana activity_mainxml

Con esto ya tenemos definida la presentacioacuten visual de nuestra ventana principal de la aplicacioacuten veamos ahora la loacutegica de la mismaComo ya hemos comentado la loacutegica de la aplicacioacuten se definiraacute en ficheros java independientes Para la pantalla principal ya tenemoscreado un fichero por defecto llamado MainActivityjava Empecemos por comentar su coacutedigo por defecto

12345

ltTextView androidid=+idLblNombre androidlayout_width=wrap_content androidlayout_height=wrap_content androidtext=Escribe tu nombre gt

12345

ltresourcesgt ltstring name=nombregtEscribe tu nombreltstringgt ltresourcesgt

12345

ltTextView androidid=+idLblNombre androidlayout_width=wrap_content androidlayout_height=wrap_content androidtext=stringnombre gt

123456789

101112131415161718192021

package netsgoliverandroidholausuario import androidsupportv7appActionBarActivityimport androidosBundleimport androidviewMenuimport androidviewMenuItem public class MainActivity extends ActionBarActivity Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Override public boolean onCreateOptionsMenu(Menu menu) Inflate the menu this adds items to the action bar if it is present getMenuInflater()inflate(Rmenumenu_main menu) return true

Como ya vimos en un apartado anterior las diferentes pantallas de una aplicacioacuten Android se definen mediante objetos de tipo ActivityPor tanto lo primero que encontramos en nuestro fichero java es la definicioacuten de una nueva clase MainActivity que extiende en estecaso de un tipo especial de Activity llamado ActionBarActivity que soporta la utilizacioacuten de la Action Bar en nuestras aplicaciones(la action bar es la barra de tiacutetulo y menuacute superior que se utiliza en la mayoriacutea de aplicaciones Android) El uacutenico meacutetodo quemodificaremos por ahora de esta clase seraacute el meacutetodo onCreate() llamado cuando se crea por primera vez la actividad En este meacutetodolo uacutenico que encontramos en principio ademaacutes de la llamada a su implementacioacuten en la clase padre es la llamada almeacutetodo setContentView(Rlayoutactivity_main) Con esta llamada estaremos indicando a Android que debe establecer comointerfaz graacutefica de esta actividad la definida en el recurso Rlayoutactivity_main que no es maacutes que la que hemos especificado en elfichero srcmainreslayoutactivity_mainxml Una vez maacutes vemos la utilidad de las diferentes constantes de recursos creadasautomaacuteticamente en la clase R al compilar el proyecto

Ademaacutes del meacutetodo onCreate() vemos que tambieacuten se sobrescriben los meacutetodos onCreateOptionsMenu() yonOptionsItemSelected() que se utilizan para definir y gestionar los menuacutes de la aplicacioacuten yo las opciones de la action bar Por elmomento no tocaremos estos meacutetodos maacutes adelante en el curso nos ocuparemos de estos temas

Antes de modificar el coacutedigo de nuestra actividad principal vamos a crear una nueva actividad para la segunda pantalla de la aplicacioacutenanaacuteloga a eacutesta primera a la que llamaremos SaludoActivity

Para ello pulsaremos el botoacuten derecho sobre la carpeta srcmainjavatupaquetejava y seleccionaremos la opcioacuten de menuacute New Activity Blank Activity

En el cuadro de diaacutelogo que aparece indicaremos el nombre de la actividad en nuestro caso SaludoActivity el nombre de su layoutXML asociado (Android Studio crearaacute al mismo tiempo tanto el layout XML como la clase java) que llamaremos activity_saludo eltiacutetulo de la actividad que apareceraacute en la action bar El resto de opciones las podemos dejar por ahora con sus valores por defecto

Pulsaremos Finish y Android Studio crearaacute los nuevos ficheros SaludoActivityjava y activity_saludoxml en sus carpetascorrespondientes

De igual forma que hicimos con la actividad principal definiremos en primer lugar la interfaz de la segunda pantalla abriendo elfichero activity_saludoxml y antildeadiendo esta vez tan soacutelo un LinearLayout como contenedor y una etiqueta (TextView) para mostrar elmensaje personalizado al usuario

Para esta segunda pantalla el coacutedigo que incluiriacuteamos seriacutea el siguiente

22232425262728293031323334353637

Override public boolean onOptionsItemSelected(MenuItem item) Handle action bar item clicks here The action bar will automatically handle clicks on the HomeUp button so long as you specify a parent activity in AndroidManifestxml int id = itemgetItemId() noinspection SimplifiableIfStatement if (id == Ridaction_settings) return true return superonOptionsItemSelected(item)

123456789

ltLinearLayout xmlnsandroid=httpschemasandroidcomapkresandroid androidid=+idLytContenedorSaludo androidlayout_width=match_parent androidlayout_height=match_parent androidorientation=vertical gt ltTextView androidid=+idTxtSaludo androidlayout_width=wrap_content androidlayout_height=wrap_content

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Sigamos Por ahora el coacutedigo incluido en estas clases lo uacutenico que hace es generar la interfaz de la actividad A partir de aquiacute nosotrostendremos que incluir el resto de la loacutegica de la aplicacioacuten

Y vamos a empezar con la actividad principal MainActivity obteniendo una referencia a los diferentes controles de la interfaz quenecesitemos manipular en nuestro caso soacutelo el cuadro de texto y el botoacuten Para ello definiremos ambas referencias como atributos de laclase y para obtenerlas utilizaremos el meacutetodo findViewById() indicando el ID de cada control definidos como siempre en la clase RTodo esto lo haremos dentro del meacutetodo onCreate() de la clase MainActivity justo a continuacioacuten de la llamadaa setContentView() que ya comentamos

Como vemos hemos antildeadido tambieacuten varios import adicionales (los de las clases Button y EditText) para tener acceso a todas lasclases utilizadas

Una vez tenemos acceso a los diferentes controles ya soacutelo nos queda implementar las acciones a tomar cuando pulsemos el botoacuten de lapantalla Para ello continuando el coacutedigo anterior y siempre dentro del meacutetodo onCreate() implementaremos el evento onClick dedicho botoacuten Este botoacuten tendraacute que ocuparse de abrir la actividad SaludoActivity pasaacutendole toda la informacioacuten necesaria Veamoscoacutemo

101112

androidtext= gt ltLinearLayoutgt

123456789

10

public class SaludoActivity extends ActionBarActivity Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_saludo)

123456789

1011121314151617181920212223

package netsgoliverandroidholausuario import androidwidgetButtonimport androidwidgetEditText public class MainActivity extends ActionBarActivity private EditText txtNombre private Button btnAceptar Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Obtenemos una referencia a los controles de la interfaz txtNombre = (EditText)findViewById(RidTxtNombre) btnAceptar = (Button)findViewById(RidBtnAceptar)

123456789

1011121314151617181920212223242526272829303132

package netsgoliverandroidholausuario import androidcontentIntent public class MainActivity extends ActionBarActivity private EditText txtNombre private Button btnAceptar Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Obtenemos una referencia a los controles de la interfaz txtNombre = (EditText)findViewById(RidTxtNombre) btnAceptar = (Button)findViewById(RidBtnAceptar) Implementamos el evento click del botoacuten btnAceptarsetOnClickListener(new ViewOnClickListener() Override public void onClick(View v) Creamos el Intent Intent intent = new Intent(MainActivitythis SaludoActivityclass) Creamos la informacioacuten a pasar entre actividades Bundle b = new Bundle() bputString(NOMBRE txtNombregetText()toString())

Como ya indicamos en el apartado anterior la comunicacioacuten entre los distintos componentes y aplicaciones en Android se realizamediante intents por lo que el primer paso seraacute crear un objeto de este tipo Existen varias variantes del constructor de la clase Intentcada una de ellas dirigida a unas determinadas acciones En nuestro caso particular vamos a utilizar el intent para iniciar una actividaddesde otra actividad de la misma aplicacioacuten para lo que pasaremos a su constructor una referencia a la propiaactividad llamadora (MainActivitythis) y la clase de la actividad llamada (SaludoActivityclass)

Si quisieacuteramos tan soacutelo mostrar una nueva actividad ya tan soacutelo nos quedariacutea llamar a startActivity() pasaacutendole como paraacutemetro elintent creado Pero en nuestro ejemplo queremos tambieacuten pasarle cierta informacioacuten a la actividad llamada concretamente el nombre queintroduzca el usuario en el cuadro de texto de la pantalla principal Para hacer esto vamos a crear un objeto Bundle que puede conteneruna lista de pares claveshyvalor con toda la informacioacuten a pasar entre actividades En nuestro caso soacutelo antildeadiremos un dato detipo String mediante el meacutetodo putString(clave valor) Como clave para nuestro dato yo he elegido el literal ldquoNOMBRErdquo aunquepodeacuteis utilizar cualquier otro literal descriptivo Por su parte el valor de esta clave lo obtendremos consultando el contenido del cuadro detexto de la actividad principal lo que podemos conseguir llamando a su meacutetodo getText() y convirtiendo este contenido a texto mediantetoString() (maacutes adelante en el curso veremos por queacute es necesaria esta conversioacuten)

Tras esto antildeadiremos la informacioacuten al intent mediante el meacutetodo putExtras() Si necesitaacuteramos pasar maacutes datos entre una actividad yotra no tendriacuteamos maacutes que repetir estos pasos para todos los paraacutemetros necesarios

Con esto hemos finalizado ya actividad principal de la aplicacioacuten por lo que pasaremos ya a la secundaria Comenzaremos de formaanaacuteloga a la anterior ampliando el meacutetodo onCreate() obteniendo las referencias a los objetos que manipularemos esta vez soacutelo laetiqueta de texto Tras esto viene lo maacutes interesante debemos recuperar la informacioacuten pasada desde la actividad principal y asignarlacomo texto de la etiqueta Para ello accederemos en primer lugar al intent que ha originado la actividad actual mediante elmeacutetodo getIntent() y recuperaremos su informacioacuten asociada (objeto Bundle) mediante el meacutetodo getExtras()

Hecho esto tan soacutelo nos queda construir el texto de la etiqueta mediante su meacutetodo setText(texto) y recuperando el valor de nuestraclave almacenada en el objeto Bundle mediante getString(clave)

Con esto hemos concluido la loacutegica de las dos pantallas de nuestra aplicacioacuten y tan soacutelo nos queda un paso importante para finalizarnuestro desarrollo Como ya indicamos en un apartado anterior toda aplicacioacuten Android utiliza un fichero especial en formato XML(AndroidManifestxml) para definir entre otras cosas los diferentes elementos que la componen Por tanto todas las actividades denuestra aplicacioacuten deben quedar convenientemente definidas en este fichero En este caso Android Studio se debe haber ocupado pornosotros de definir ambas actividades en el fichero pero lo revisaremos para asiacute echar un vistazo al contenido

Si abrimos el fichero AndroidManifestxml veremos que contiene un elemento principal ltApplicationgt que debe incluir varios elementosltActivitygt uno por cada actividad incluida en nuestra aplicacioacuten En este caso comprobamos como efectivamente Android Studio ya seha ocupado de esto por nosotros aunque este fichero siacute podriacuteamos modificarlo a mano para hacer ajustes si fuera necesario

333435363738394041

Antildeadimos la informacioacuten al intent intentputExtras(b) Iniciamos la nueva actividad startActivity(intent) )

123456789

1011121314151617181920212223242526

package netsgoliverandroidholausuario import androidwidgetTextView public class SaludoActivity extends ActionBarActivity private TextView txtSaludo Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_saludo) Localizar los controles txtSaludo = (TextView)findViewById(RidTxtSaludo) Recuperamos la informacioacuten pasada en el intent Bundle bundle = thisgetIntent()getExtras() Construimos el mensaje a mostrar txtSaludosetText(Hola + bundlegetString(NOMBRE))

123456789

10

ltmanifest xmlnsandroid=httpschemasandroidcomapkresandroid package=netsgoliverandroidholausuario gt ltapplication androidallowBackup=true androidicon=drawableic_launcher androidlabel=stringapp_name androidtheme=styleAppTheme gt ltactivity androidname=MainActivity

Podemos ver como para cada actividad se indica entre otras cosas el nombre de su clase java asociada como valor delatributo androidname y su tiacutetulo mediante el atributo androidlabel maacutes adelante veremos queacute opciones adicionales podemosespecificar Vemos una vez maacutes coacutemo el tiacutetulo de las actividades se indica como referencia a cadenas de caracteres definidas comorecursos que deben estar incluidas como ya hemos comentado anteriormente en el fichero mainresvaluesstringsxml

El uacuteltimo elemento que revisaremos de nuestro proyecto aunque tampoco tendremos que modificarlo por ahora seraacute el ficherobuildgradle Pueden existir varios ficheros llamados asiacute en nuestra estructura de carpetas a distintos niveles pero normalmente siempreaccederemos al que estaacute al nivel maacutes interno en nuestro caso el que estaacute dentro del moacutedulo ldquoapprdquo Veamos queacute contiene

Gradle es el nuevo sistema de compilacioacuten y construccioacuten que ha adoptado Google para Android Studio Pero no es un sistema especiacuteficode Android sino que puede utilizarse con otros lenguajesplataformas Por tanto lo primero que indicamos en este fichero es queutilizaremos el plugin para Android mediante la sentencia ldquoapply pluginldquo A continuacioacuten definiremos varias opciones especiacuteficas deAndroid como las versiones de la API miacutenima (minSdkVersion) API objetivo (targetSdkVersion) y API de compilacioacuten(compileSdkVersion) que utilizaremosen el proyecto la versioacuten de las build tools (buildToolsVersion) que queremos utilizar (es unode los componentes que podemos descargaractualizar desde el SDK Manager) la versioacuten tanto interna (versionCode) como visible(versionName) de la aplicacioacuten o la configuracioacuten de ProGuard si estamos haciendo uso de eacutel (no nos preocupamos por ahora de esto)Durante el curso iremos viendo con maacutes detalle todos estos elementos El ultimo elemento llamado ldquodependenciesrdquo tambieacuten esimportante y nos serviraacute entre otras cosas para definir las libreriacuteas externas que utilizaremos en la aplicacioacuten Por defecto vemos que seantildeade la libreriacutea de compatibilidad appcompat que nos permite utilizar la Action Bar en la mayoriacutea de versiones de Android y todos losfichero jar que incluyamos en la carpeta libs

Llegados aquiacute y si todo ha ido bien deberiacuteamos poder ejecutar el proyecto sin errores y probar nuestra aplicacioacuten en el emulador peropara ello tendremos que definir primero uno Vamos a describir los pasos para hacerlo

Para poder probar aplicaciones Android en nuestro PC sin tener que recurrir a un dispositivo fiacutesico tenemos que definir lo que sedenominan AVD (Android Virtual Device) Para crear un AVD seleccionaremos el menuacute Tools Android AVD Manager Si es la primeravez que accedemos a esta herramienta veremos la pantalla siguiente

Pulsando el botoacuten central ldquoCreate a virtual devicerdquo accederemos al asistente para crear un AVD En el primer paso tendremos queseleccionar a la izquierda queacute tipo de dispositivo queremos que ldquosimulerdquo nuestro AVD (teleacutefono tablet reloj hellip) y el tamantildeo resolucioacuten ydensidad de piacutexeles de su pantalla En mi caso seleccionareacute por ejemplo las caracteriacutesticas de un Nexus 4 y pasaremos al siguiente pasopulsando ldquoNextldquo

111213141516171819202122

androidlabel=stringapp_name gt ltintent‐filtergt ltaction androidname=androidintentactionMAIN gt ltcategory androidname=androidintentcategoryLAUNCHER gt ltintent‐filtergt ltactivitygt ltactivity androidname=SaludoActivity androidlabel=stringtitle_activity_saludo gt ltactivitygt ltapplicationgtltmanifestgt

123456789

10111213141516171819202122232425

apply plugin comandroidapplication android compileSdkVersion 21 buildToolsVersion 2112 defaultConfig applicationId netsgoliverandroidholausuario minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName 10 buildTypes release minifyEnabled false proguardFiles getDefaultProguardFile(proguard‐androidtxt) proguard‐rulespro dependencies compile fileTree(dir libs include [jar]) compile comandroidsupportappcompat‐v72103

En la siguiente pantalla seleccionaremos la versioacuten de Android que utilizaraacute el AVD Apareceraacuten directamente disponibles las queinstalamos desde el SDK Manager al instalar el entorno aunque tenemos la posibilidad de descargar e instalar nuevas versiones desdeesta misma pantalla En mi caso utilizareacute KitKat (API 19) para este primer AVD (podemos crear tantos como queramos para probarnuestras aplicaciones sobre distintas condiciones)

En el siguiente paso del asistente podremos configurar algunas caracteriacutesticas maacutes del AVD como por ejemplo la cantidad de memoriaque tendraacute disponible si simularaacute tener caacutemara frontal yo trasera teclado fiacutesico hellip Recomiendo pulsar el botoacuten ldquoShow AdvancedSettingsrdquo para ver todas las opciones disponibles Si quieres puedes ajustar cualquiera de estos paraacutemetros pero por el momento osrecomiendo dejar todas las opciones por defecto Tan soacutelo nos aseguraremos de tener activada la opcioacuten ldquoUse Host GPUrdquo con la quenormalmente conseguiremos un mayor rendimiento del emulador

Tras pulsar el botoacuten Finish tendremos ya configurado nuestro AVD por lo que podremos comenzar a probar nuestras aplicaciones sobreeacutel

Para ello pulsaremos simplemente el menuacute Run Run lsquoapprsquo (o la tecla raacutepida Mayuacutes+F10) Android Studio nos preguntaraacute en queacutedispositivo queremos ejecutar la aplicacioacuten y nos mostraraacute dos listas La primera de ellas con los dispositivos que haya en ese momentoen funcionamiento (por ejemplo si ya teniacuteamos un emulador funcionando) y una lista desplegable con el resto de AVDs configurados ennuestro entorno Podremos seleccionar cualquiera de los emuladores disponibles en cualquiera de las dos listas Lo normal seraacutemantener un emulador siempre abierto y seleccionarlo de la primera lista cada vez que ejecutemos la aplicacioacuten

Elegireacute para este ejemplo el AVD que acabamos de crear y configurar Es posible que la primera ejecucioacuten se demore unos minutos tododependeraacute de las caracteriacutesticas de vuestro PC asiacute que paciencia

Estructura de un proyecto Android (Android Studio) Controles de seleccioacuten (V) RecyclerView

Si todo va bien tras una pequentildea (o no tan pequentildea) espera apareceraacute el emulador de Android y se iniciaraacute automaacuteticamente nuestraaplicacioacuten (si se inicia el emulador pero no se ejecuta automaacuteticamente la aplicacioacuten podemos volver a ejecutarla desde Android Studiomediante el menuacute Run sin cerrar el emulador ya abierto)

Podemos probar a escribir un nombre y pulsar el botoacuten ldquoAceptarrdquo para comprobar si el funcionamiento es el correcto

Y con esto terminamos por ahora Espero que esta aplicacioacuten de ejemplo os sea de ayuda para aprender temas baacutesicos en el desarrollopara Android como por ejemplo la definicioacuten de la interfaz graacutefica el coacutedigo java necesario para acceder y manipular los elementos dedicha interfaz y la forma de comunicar diferentes actividades de Android En los apartados siguientes veremos algunos de estos temas deforma mucho maacutes especiacutefica

Podeacuteis consultar online y descargar el coacutedigo fuente completo de este artiacuteculo desde github

Comparte esta entrada

Facebook Twitter Google Correo electroacutenico

SuscriacutebeteSubscribe to our eshymail newsletter to receive updates

Related Posts

Actionbar Appbar Toolbar en Android (I)Interfaz de usuario en Android CardViewControles de seleccioacuten (V) RecyclerViewEstructura de un proyecto Android (Android Studio)Entorno de desarrollo Android (Android Studio)

Android Studio aplicacioacuten baacutesicos conceptos curso android ejemplo primera sencillo

29 Responses to Desarrollando una aplicacioacuten Android sencilla (Android Studio)

Carlos 20012015 at 212

Hola una consultaen el metodo SaludoActivity de la clase SaludoActivityjava cuando declaro lo siguiente

private TextView txtSaludo

me muestra en color violeta esa variable y con el msj ldquoField can be converted to a local variablerdquoy luego en el mismo metodo y en la siguiente linea

txtSaludo = (TextView)findViewById(RidTxtSaludo)

me marca la TxtSaludo en rojo con el msj ldquocannot resolve the symbol lsquoTxtSaludorsquo rdquocomo lo soluciono y porque paso eso

Kazama 20012015 at 523

Excelente tutorial hasta aca todo bien conmigo solo q tuve q agregar una libreriaimport androidviewViewen el MainActivity

y me corrio excelente otro comentario es que tuve problemas con HAXM pero ya lo resolvi y tambien con correrla desde mi movil (Samsung GTshyS6010)conectado a USB por modo depuracion pero al final logre solucionar eso tambien

seguire por aca leyendo y dejando mis comentarios de antemano Mil gracias

Francisco 24012015 at 507

Hola muy buen tutorial esta explicado exelentementehellip

Tengo una duda no puedo ejecutar el emulador no puedo instalarlo no es compatible me dice Tengo un procesador amd iquestse podraacute instalar

Joel 24012015 at 1718

Excelente tutorial he realizado mi primer ejemplo en Android gracias a este magnifico tutorial detallado magnifcamente

Tuve ciertos inconvenientes que los resolvi con mucha perseverancia y lectura y que me ayudo a conocer mejor el lenguaje

Uno de los temas que mas tuve problemas fue con la constante ldquoRrdquo que el sistema no la veia

Lo recomiendo muy bueno

javier 27012015 at 150

A mi me estaacute pasando que siguiendo el tutorial no consigo que la Ridhelliphellip me aparezca en negro todo el rato la R la tengo en rojo y pone elsiguiente texto situaacutendome encimaCannot resolve symbol lsquoRrsquo

Podriacuteais indicarme coacutemo solucionarlo No seacute queacute estoy haciendo malhellip

Mil gracias de antemano

Saludos

Oscar 29012015 at 2237

Hola no entiendo que siginifca el parametro v en public void onClick(View v)

Rodrigo 31012015 at 1943

Veniacuteas explicando muy bien hasta que derrapaste como un campeoacuten en

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Siendo nuevo hasta ahiacute entendiacute perfectamente de ahiacute te olvidaste de explicar bien donde copiar cada uno de los coacutedigos que vas dictando Al principio loexplicabas muy bien despueacutes te fuiste al carajo

admin 31012015 at 2209

Me alegra recibir criacuteticas tan constructivas Al final de cada artiacuteculo teneacuteis el enlace (GitHub) al coacutedigo completo del ejemplo descrito que

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 3: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Como ya vimos en un apartado anterior las diferentes pantallas de una aplicacioacuten Android se definen mediante objetos de tipo ActivityPor tanto lo primero que encontramos en nuestro fichero java es la definicioacuten de una nueva clase MainActivity que extiende en estecaso de un tipo especial de Activity llamado ActionBarActivity que soporta la utilizacioacuten de la Action Bar en nuestras aplicaciones(la action bar es la barra de tiacutetulo y menuacute superior que se utiliza en la mayoriacutea de aplicaciones Android) El uacutenico meacutetodo quemodificaremos por ahora de esta clase seraacute el meacutetodo onCreate() llamado cuando se crea por primera vez la actividad En este meacutetodolo uacutenico que encontramos en principio ademaacutes de la llamada a su implementacioacuten en la clase padre es la llamada almeacutetodo setContentView(Rlayoutactivity_main) Con esta llamada estaremos indicando a Android que debe establecer comointerfaz graacutefica de esta actividad la definida en el recurso Rlayoutactivity_main que no es maacutes que la que hemos especificado en elfichero srcmainreslayoutactivity_mainxml Una vez maacutes vemos la utilidad de las diferentes constantes de recursos creadasautomaacuteticamente en la clase R al compilar el proyecto

Ademaacutes del meacutetodo onCreate() vemos que tambieacuten se sobrescriben los meacutetodos onCreateOptionsMenu() yonOptionsItemSelected() que se utilizan para definir y gestionar los menuacutes de la aplicacioacuten yo las opciones de la action bar Por elmomento no tocaremos estos meacutetodos maacutes adelante en el curso nos ocuparemos de estos temas

Antes de modificar el coacutedigo de nuestra actividad principal vamos a crear una nueva actividad para la segunda pantalla de la aplicacioacutenanaacuteloga a eacutesta primera a la que llamaremos SaludoActivity

Para ello pulsaremos el botoacuten derecho sobre la carpeta srcmainjavatupaquetejava y seleccionaremos la opcioacuten de menuacute New Activity Blank Activity

En el cuadro de diaacutelogo que aparece indicaremos el nombre de la actividad en nuestro caso SaludoActivity el nombre de su layoutXML asociado (Android Studio crearaacute al mismo tiempo tanto el layout XML como la clase java) que llamaremos activity_saludo eltiacutetulo de la actividad que apareceraacute en la action bar El resto de opciones las podemos dejar por ahora con sus valores por defecto

Pulsaremos Finish y Android Studio crearaacute los nuevos ficheros SaludoActivityjava y activity_saludoxml en sus carpetascorrespondientes

De igual forma que hicimos con la actividad principal definiremos en primer lugar la interfaz de la segunda pantalla abriendo elfichero activity_saludoxml y antildeadiendo esta vez tan soacutelo un LinearLayout como contenedor y una etiqueta (TextView) para mostrar elmensaje personalizado al usuario

Para esta segunda pantalla el coacutedigo que incluiriacuteamos seriacutea el siguiente

22232425262728293031323334353637

Override public boolean onOptionsItemSelected(MenuItem item) Handle action bar item clicks here The action bar will automatically handle clicks on the HomeUp button so long as you specify a parent activity in AndroidManifestxml int id = itemgetItemId() noinspection SimplifiableIfStatement if (id == Ridaction_settings) return true return superonOptionsItemSelected(item)

123456789

ltLinearLayout xmlnsandroid=httpschemasandroidcomapkresandroid androidid=+idLytContenedorSaludo androidlayout_width=match_parent androidlayout_height=match_parent androidorientation=vertical gt ltTextView androidid=+idTxtSaludo androidlayout_width=wrap_content androidlayout_height=wrap_content

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Sigamos Por ahora el coacutedigo incluido en estas clases lo uacutenico que hace es generar la interfaz de la actividad A partir de aquiacute nosotrostendremos que incluir el resto de la loacutegica de la aplicacioacuten

Y vamos a empezar con la actividad principal MainActivity obteniendo una referencia a los diferentes controles de la interfaz quenecesitemos manipular en nuestro caso soacutelo el cuadro de texto y el botoacuten Para ello definiremos ambas referencias como atributos de laclase y para obtenerlas utilizaremos el meacutetodo findViewById() indicando el ID de cada control definidos como siempre en la clase RTodo esto lo haremos dentro del meacutetodo onCreate() de la clase MainActivity justo a continuacioacuten de la llamadaa setContentView() que ya comentamos

Como vemos hemos antildeadido tambieacuten varios import adicionales (los de las clases Button y EditText) para tener acceso a todas lasclases utilizadas

Una vez tenemos acceso a los diferentes controles ya soacutelo nos queda implementar las acciones a tomar cuando pulsemos el botoacuten de lapantalla Para ello continuando el coacutedigo anterior y siempre dentro del meacutetodo onCreate() implementaremos el evento onClick dedicho botoacuten Este botoacuten tendraacute que ocuparse de abrir la actividad SaludoActivity pasaacutendole toda la informacioacuten necesaria Veamoscoacutemo

101112

androidtext= gt ltLinearLayoutgt

123456789

10

public class SaludoActivity extends ActionBarActivity Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_saludo)

123456789

1011121314151617181920212223

package netsgoliverandroidholausuario import androidwidgetButtonimport androidwidgetEditText public class MainActivity extends ActionBarActivity private EditText txtNombre private Button btnAceptar Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Obtenemos una referencia a los controles de la interfaz txtNombre = (EditText)findViewById(RidTxtNombre) btnAceptar = (Button)findViewById(RidBtnAceptar)

123456789

1011121314151617181920212223242526272829303132

package netsgoliverandroidholausuario import androidcontentIntent public class MainActivity extends ActionBarActivity private EditText txtNombre private Button btnAceptar Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Obtenemos una referencia a los controles de la interfaz txtNombre = (EditText)findViewById(RidTxtNombre) btnAceptar = (Button)findViewById(RidBtnAceptar) Implementamos el evento click del botoacuten btnAceptarsetOnClickListener(new ViewOnClickListener() Override public void onClick(View v) Creamos el Intent Intent intent = new Intent(MainActivitythis SaludoActivityclass) Creamos la informacioacuten a pasar entre actividades Bundle b = new Bundle() bputString(NOMBRE txtNombregetText()toString())

Como ya indicamos en el apartado anterior la comunicacioacuten entre los distintos componentes y aplicaciones en Android se realizamediante intents por lo que el primer paso seraacute crear un objeto de este tipo Existen varias variantes del constructor de la clase Intentcada una de ellas dirigida a unas determinadas acciones En nuestro caso particular vamos a utilizar el intent para iniciar una actividaddesde otra actividad de la misma aplicacioacuten para lo que pasaremos a su constructor una referencia a la propiaactividad llamadora (MainActivitythis) y la clase de la actividad llamada (SaludoActivityclass)

Si quisieacuteramos tan soacutelo mostrar una nueva actividad ya tan soacutelo nos quedariacutea llamar a startActivity() pasaacutendole como paraacutemetro elintent creado Pero en nuestro ejemplo queremos tambieacuten pasarle cierta informacioacuten a la actividad llamada concretamente el nombre queintroduzca el usuario en el cuadro de texto de la pantalla principal Para hacer esto vamos a crear un objeto Bundle que puede conteneruna lista de pares claveshyvalor con toda la informacioacuten a pasar entre actividades En nuestro caso soacutelo antildeadiremos un dato detipo String mediante el meacutetodo putString(clave valor) Como clave para nuestro dato yo he elegido el literal ldquoNOMBRErdquo aunquepodeacuteis utilizar cualquier otro literal descriptivo Por su parte el valor de esta clave lo obtendremos consultando el contenido del cuadro detexto de la actividad principal lo que podemos conseguir llamando a su meacutetodo getText() y convirtiendo este contenido a texto mediantetoString() (maacutes adelante en el curso veremos por queacute es necesaria esta conversioacuten)

Tras esto antildeadiremos la informacioacuten al intent mediante el meacutetodo putExtras() Si necesitaacuteramos pasar maacutes datos entre una actividad yotra no tendriacuteamos maacutes que repetir estos pasos para todos los paraacutemetros necesarios

Con esto hemos finalizado ya actividad principal de la aplicacioacuten por lo que pasaremos ya a la secundaria Comenzaremos de formaanaacuteloga a la anterior ampliando el meacutetodo onCreate() obteniendo las referencias a los objetos que manipularemos esta vez soacutelo laetiqueta de texto Tras esto viene lo maacutes interesante debemos recuperar la informacioacuten pasada desde la actividad principal y asignarlacomo texto de la etiqueta Para ello accederemos en primer lugar al intent que ha originado la actividad actual mediante elmeacutetodo getIntent() y recuperaremos su informacioacuten asociada (objeto Bundle) mediante el meacutetodo getExtras()

Hecho esto tan soacutelo nos queda construir el texto de la etiqueta mediante su meacutetodo setText(texto) y recuperando el valor de nuestraclave almacenada en el objeto Bundle mediante getString(clave)

Con esto hemos concluido la loacutegica de las dos pantallas de nuestra aplicacioacuten y tan soacutelo nos queda un paso importante para finalizarnuestro desarrollo Como ya indicamos en un apartado anterior toda aplicacioacuten Android utiliza un fichero especial en formato XML(AndroidManifestxml) para definir entre otras cosas los diferentes elementos que la componen Por tanto todas las actividades denuestra aplicacioacuten deben quedar convenientemente definidas en este fichero En este caso Android Studio se debe haber ocupado pornosotros de definir ambas actividades en el fichero pero lo revisaremos para asiacute echar un vistazo al contenido

Si abrimos el fichero AndroidManifestxml veremos que contiene un elemento principal ltApplicationgt que debe incluir varios elementosltActivitygt uno por cada actividad incluida en nuestra aplicacioacuten En este caso comprobamos como efectivamente Android Studio ya seha ocupado de esto por nosotros aunque este fichero siacute podriacuteamos modificarlo a mano para hacer ajustes si fuera necesario

333435363738394041

Antildeadimos la informacioacuten al intent intentputExtras(b) Iniciamos la nueva actividad startActivity(intent) )

123456789

1011121314151617181920212223242526

package netsgoliverandroidholausuario import androidwidgetTextView public class SaludoActivity extends ActionBarActivity private TextView txtSaludo Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_saludo) Localizar los controles txtSaludo = (TextView)findViewById(RidTxtSaludo) Recuperamos la informacioacuten pasada en el intent Bundle bundle = thisgetIntent()getExtras() Construimos el mensaje a mostrar txtSaludosetText(Hola + bundlegetString(NOMBRE))

123456789

10

ltmanifest xmlnsandroid=httpschemasandroidcomapkresandroid package=netsgoliverandroidholausuario gt ltapplication androidallowBackup=true androidicon=drawableic_launcher androidlabel=stringapp_name androidtheme=styleAppTheme gt ltactivity androidname=MainActivity

Podemos ver como para cada actividad se indica entre otras cosas el nombre de su clase java asociada como valor delatributo androidname y su tiacutetulo mediante el atributo androidlabel maacutes adelante veremos queacute opciones adicionales podemosespecificar Vemos una vez maacutes coacutemo el tiacutetulo de las actividades se indica como referencia a cadenas de caracteres definidas comorecursos que deben estar incluidas como ya hemos comentado anteriormente en el fichero mainresvaluesstringsxml

El uacuteltimo elemento que revisaremos de nuestro proyecto aunque tampoco tendremos que modificarlo por ahora seraacute el ficherobuildgradle Pueden existir varios ficheros llamados asiacute en nuestra estructura de carpetas a distintos niveles pero normalmente siempreaccederemos al que estaacute al nivel maacutes interno en nuestro caso el que estaacute dentro del moacutedulo ldquoapprdquo Veamos queacute contiene

Gradle es el nuevo sistema de compilacioacuten y construccioacuten que ha adoptado Google para Android Studio Pero no es un sistema especiacuteficode Android sino que puede utilizarse con otros lenguajesplataformas Por tanto lo primero que indicamos en este fichero es queutilizaremos el plugin para Android mediante la sentencia ldquoapply pluginldquo A continuacioacuten definiremos varias opciones especiacuteficas deAndroid como las versiones de la API miacutenima (minSdkVersion) API objetivo (targetSdkVersion) y API de compilacioacuten(compileSdkVersion) que utilizaremosen el proyecto la versioacuten de las build tools (buildToolsVersion) que queremos utilizar (es unode los componentes que podemos descargaractualizar desde el SDK Manager) la versioacuten tanto interna (versionCode) como visible(versionName) de la aplicacioacuten o la configuracioacuten de ProGuard si estamos haciendo uso de eacutel (no nos preocupamos por ahora de esto)Durante el curso iremos viendo con maacutes detalle todos estos elementos El ultimo elemento llamado ldquodependenciesrdquo tambieacuten esimportante y nos serviraacute entre otras cosas para definir las libreriacuteas externas que utilizaremos en la aplicacioacuten Por defecto vemos que seantildeade la libreriacutea de compatibilidad appcompat que nos permite utilizar la Action Bar en la mayoriacutea de versiones de Android y todos losfichero jar que incluyamos en la carpeta libs

Llegados aquiacute y si todo ha ido bien deberiacuteamos poder ejecutar el proyecto sin errores y probar nuestra aplicacioacuten en el emulador peropara ello tendremos que definir primero uno Vamos a describir los pasos para hacerlo

Para poder probar aplicaciones Android en nuestro PC sin tener que recurrir a un dispositivo fiacutesico tenemos que definir lo que sedenominan AVD (Android Virtual Device) Para crear un AVD seleccionaremos el menuacute Tools Android AVD Manager Si es la primeravez que accedemos a esta herramienta veremos la pantalla siguiente

Pulsando el botoacuten central ldquoCreate a virtual devicerdquo accederemos al asistente para crear un AVD En el primer paso tendremos queseleccionar a la izquierda queacute tipo de dispositivo queremos que ldquosimulerdquo nuestro AVD (teleacutefono tablet reloj hellip) y el tamantildeo resolucioacuten ydensidad de piacutexeles de su pantalla En mi caso seleccionareacute por ejemplo las caracteriacutesticas de un Nexus 4 y pasaremos al siguiente pasopulsando ldquoNextldquo

111213141516171819202122

androidlabel=stringapp_name gt ltintent‐filtergt ltaction androidname=androidintentactionMAIN gt ltcategory androidname=androidintentcategoryLAUNCHER gt ltintent‐filtergt ltactivitygt ltactivity androidname=SaludoActivity androidlabel=stringtitle_activity_saludo gt ltactivitygt ltapplicationgtltmanifestgt

123456789

10111213141516171819202122232425

apply plugin comandroidapplication android compileSdkVersion 21 buildToolsVersion 2112 defaultConfig applicationId netsgoliverandroidholausuario minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName 10 buildTypes release minifyEnabled false proguardFiles getDefaultProguardFile(proguard‐androidtxt) proguard‐rulespro dependencies compile fileTree(dir libs include [jar]) compile comandroidsupportappcompat‐v72103

En la siguiente pantalla seleccionaremos la versioacuten de Android que utilizaraacute el AVD Apareceraacuten directamente disponibles las queinstalamos desde el SDK Manager al instalar el entorno aunque tenemos la posibilidad de descargar e instalar nuevas versiones desdeesta misma pantalla En mi caso utilizareacute KitKat (API 19) para este primer AVD (podemos crear tantos como queramos para probarnuestras aplicaciones sobre distintas condiciones)

En el siguiente paso del asistente podremos configurar algunas caracteriacutesticas maacutes del AVD como por ejemplo la cantidad de memoriaque tendraacute disponible si simularaacute tener caacutemara frontal yo trasera teclado fiacutesico hellip Recomiendo pulsar el botoacuten ldquoShow AdvancedSettingsrdquo para ver todas las opciones disponibles Si quieres puedes ajustar cualquiera de estos paraacutemetros pero por el momento osrecomiendo dejar todas las opciones por defecto Tan soacutelo nos aseguraremos de tener activada la opcioacuten ldquoUse Host GPUrdquo con la quenormalmente conseguiremos un mayor rendimiento del emulador

Tras pulsar el botoacuten Finish tendremos ya configurado nuestro AVD por lo que podremos comenzar a probar nuestras aplicaciones sobreeacutel

Para ello pulsaremos simplemente el menuacute Run Run lsquoapprsquo (o la tecla raacutepida Mayuacutes+F10) Android Studio nos preguntaraacute en queacutedispositivo queremos ejecutar la aplicacioacuten y nos mostraraacute dos listas La primera de ellas con los dispositivos que haya en ese momentoen funcionamiento (por ejemplo si ya teniacuteamos un emulador funcionando) y una lista desplegable con el resto de AVDs configurados ennuestro entorno Podremos seleccionar cualquiera de los emuladores disponibles en cualquiera de las dos listas Lo normal seraacutemantener un emulador siempre abierto y seleccionarlo de la primera lista cada vez que ejecutemos la aplicacioacuten

Elegireacute para este ejemplo el AVD que acabamos de crear y configurar Es posible que la primera ejecucioacuten se demore unos minutos tododependeraacute de las caracteriacutesticas de vuestro PC asiacute que paciencia

Estructura de un proyecto Android (Android Studio) Controles de seleccioacuten (V) RecyclerView

Si todo va bien tras una pequentildea (o no tan pequentildea) espera apareceraacute el emulador de Android y se iniciaraacute automaacuteticamente nuestraaplicacioacuten (si se inicia el emulador pero no se ejecuta automaacuteticamente la aplicacioacuten podemos volver a ejecutarla desde Android Studiomediante el menuacute Run sin cerrar el emulador ya abierto)

Podemos probar a escribir un nombre y pulsar el botoacuten ldquoAceptarrdquo para comprobar si el funcionamiento es el correcto

Y con esto terminamos por ahora Espero que esta aplicacioacuten de ejemplo os sea de ayuda para aprender temas baacutesicos en el desarrollopara Android como por ejemplo la definicioacuten de la interfaz graacutefica el coacutedigo java necesario para acceder y manipular los elementos dedicha interfaz y la forma de comunicar diferentes actividades de Android En los apartados siguientes veremos algunos de estos temas deforma mucho maacutes especiacutefica

Podeacuteis consultar online y descargar el coacutedigo fuente completo de este artiacuteculo desde github

Comparte esta entrada

Facebook Twitter Google Correo electroacutenico

SuscriacutebeteSubscribe to our eshymail newsletter to receive updates

Related Posts

Actionbar Appbar Toolbar en Android (I)Interfaz de usuario en Android CardViewControles de seleccioacuten (V) RecyclerViewEstructura de un proyecto Android (Android Studio)Entorno de desarrollo Android (Android Studio)

Android Studio aplicacioacuten baacutesicos conceptos curso android ejemplo primera sencillo

29 Responses to Desarrollando una aplicacioacuten Android sencilla (Android Studio)

Carlos 20012015 at 212

Hola una consultaen el metodo SaludoActivity de la clase SaludoActivityjava cuando declaro lo siguiente

private TextView txtSaludo

me muestra en color violeta esa variable y con el msj ldquoField can be converted to a local variablerdquoy luego en el mismo metodo y en la siguiente linea

txtSaludo = (TextView)findViewById(RidTxtSaludo)

me marca la TxtSaludo en rojo con el msj ldquocannot resolve the symbol lsquoTxtSaludorsquo rdquocomo lo soluciono y porque paso eso

Kazama 20012015 at 523

Excelente tutorial hasta aca todo bien conmigo solo q tuve q agregar una libreriaimport androidviewViewen el MainActivity

y me corrio excelente otro comentario es que tuve problemas con HAXM pero ya lo resolvi y tambien con correrla desde mi movil (Samsung GTshyS6010)conectado a USB por modo depuracion pero al final logre solucionar eso tambien

seguire por aca leyendo y dejando mis comentarios de antemano Mil gracias

Francisco 24012015 at 507

Hola muy buen tutorial esta explicado exelentementehellip

Tengo una duda no puedo ejecutar el emulador no puedo instalarlo no es compatible me dice Tengo un procesador amd iquestse podraacute instalar

Joel 24012015 at 1718

Excelente tutorial he realizado mi primer ejemplo en Android gracias a este magnifico tutorial detallado magnifcamente

Tuve ciertos inconvenientes que los resolvi con mucha perseverancia y lectura y que me ayudo a conocer mejor el lenguaje

Uno de los temas que mas tuve problemas fue con la constante ldquoRrdquo que el sistema no la veia

Lo recomiendo muy bueno

javier 27012015 at 150

A mi me estaacute pasando que siguiendo el tutorial no consigo que la Ridhelliphellip me aparezca en negro todo el rato la R la tengo en rojo y pone elsiguiente texto situaacutendome encimaCannot resolve symbol lsquoRrsquo

Podriacuteais indicarme coacutemo solucionarlo No seacute queacute estoy haciendo malhellip

Mil gracias de antemano

Saludos

Oscar 29012015 at 2237

Hola no entiendo que siginifca el parametro v en public void onClick(View v)

Rodrigo 31012015 at 1943

Veniacuteas explicando muy bien hasta que derrapaste como un campeoacuten en

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Siendo nuevo hasta ahiacute entendiacute perfectamente de ahiacute te olvidaste de explicar bien donde copiar cada uno de los coacutedigos que vas dictando Al principio loexplicabas muy bien despueacutes te fuiste al carajo

admin 31012015 at 2209

Me alegra recibir criacuteticas tan constructivas Al final de cada artiacuteculo teneacuteis el enlace (GitHub) al coacutedigo completo del ejemplo descrito que

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 4: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Sigamos Por ahora el coacutedigo incluido en estas clases lo uacutenico que hace es generar la interfaz de la actividad A partir de aquiacute nosotrostendremos que incluir el resto de la loacutegica de la aplicacioacuten

Y vamos a empezar con la actividad principal MainActivity obteniendo una referencia a los diferentes controles de la interfaz quenecesitemos manipular en nuestro caso soacutelo el cuadro de texto y el botoacuten Para ello definiremos ambas referencias como atributos de laclase y para obtenerlas utilizaremos el meacutetodo findViewById() indicando el ID de cada control definidos como siempre en la clase RTodo esto lo haremos dentro del meacutetodo onCreate() de la clase MainActivity justo a continuacioacuten de la llamadaa setContentView() que ya comentamos

Como vemos hemos antildeadido tambieacuten varios import adicionales (los de las clases Button y EditText) para tener acceso a todas lasclases utilizadas

Una vez tenemos acceso a los diferentes controles ya soacutelo nos queda implementar las acciones a tomar cuando pulsemos el botoacuten de lapantalla Para ello continuando el coacutedigo anterior y siempre dentro del meacutetodo onCreate() implementaremos el evento onClick dedicho botoacuten Este botoacuten tendraacute que ocuparse de abrir la actividad SaludoActivity pasaacutendole toda la informacioacuten necesaria Veamoscoacutemo

101112

androidtext= gt ltLinearLayoutgt

123456789

10

public class SaludoActivity extends ActionBarActivity Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_saludo)

123456789

1011121314151617181920212223

package netsgoliverandroidholausuario import androidwidgetButtonimport androidwidgetEditText public class MainActivity extends ActionBarActivity private EditText txtNombre private Button btnAceptar Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Obtenemos una referencia a los controles de la interfaz txtNombre = (EditText)findViewById(RidTxtNombre) btnAceptar = (Button)findViewById(RidBtnAceptar)

123456789

1011121314151617181920212223242526272829303132

package netsgoliverandroidholausuario import androidcontentIntent public class MainActivity extends ActionBarActivity private EditText txtNombre private Button btnAceptar Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_main) Obtenemos una referencia a los controles de la interfaz txtNombre = (EditText)findViewById(RidTxtNombre) btnAceptar = (Button)findViewById(RidBtnAceptar) Implementamos el evento click del botoacuten btnAceptarsetOnClickListener(new ViewOnClickListener() Override public void onClick(View v) Creamos el Intent Intent intent = new Intent(MainActivitythis SaludoActivityclass) Creamos la informacioacuten a pasar entre actividades Bundle b = new Bundle() bputString(NOMBRE txtNombregetText()toString())

Como ya indicamos en el apartado anterior la comunicacioacuten entre los distintos componentes y aplicaciones en Android se realizamediante intents por lo que el primer paso seraacute crear un objeto de este tipo Existen varias variantes del constructor de la clase Intentcada una de ellas dirigida a unas determinadas acciones En nuestro caso particular vamos a utilizar el intent para iniciar una actividaddesde otra actividad de la misma aplicacioacuten para lo que pasaremos a su constructor una referencia a la propiaactividad llamadora (MainActivitythis) y la clase de la actividad llamada (SaludoActivityclass)

Si quisieacuteramos tan soacutelo mostrar una nueva actividad ya tan soacutelo nos quedariacutea llamar a startActivity() pasaacutendole como paraacutemetro elintent creado Pero en nuestro ejemplo queremos tambieacuten pasarle cierta informacioacuten a la actividad llamada concretamente el nombre queintroduzca el usuario en el cuadro de texto de la pantalla principal Para hacer esto vamos a crear un objeto Bundle que puede conteneruna lista de pares claveshyvalor con toda la informacioacuten a pasar entre actividades En nuestro caso soacutelo antildeadiremos un dato detipo String mediante el meacutetodo putString(clave valor) Como clave para nuestro dato yo he elegido el literal ldquoNOMBRErdquo aunquepodeacuteis utilizar cualquier otro literal descriptivo Por su parte el valor de esta clave lo obtendremos consultando el contenido del cuadro detexto de la actividad principal lo que podemos conseguir llamando a su meacutetodo getText() y convirtiendo este contenido a texto mediantetoString() (maacutes adelante en el curso veremos por queacute es necesaria esta conversioacuten)

Tras esto antildeadiremos la informacioacuten al intent mediante el meacutetodo putExtras() Si necesitaacuteramos pasar maacutes datos entre una actividad yotra no tendriacuteamos maacutes que repetir estos pasos para todos los paraacutemetros necesarios

Con esto hemos finalizado ya actividad principal de la aplicacioacuten por lo que pasaremos ya a la secundaria Comenzaremos de formaanaacuteloga a la anterior ampliando el meacutetodo onCreate() obteniendo las referencias a los objetos que manipularemos esta vez soacutelo laetiqueta de texto Tras esto viene lo maacutes interesante debemos recuperar la informacioacuten pasada desde la actividad principal y asignarlacomo texto de la etiqueta Para ello accederemos en primer lugar al intent que ha originado la actividad actual mediante elmeacutetodo getIntent() y recuperaremos su informacioacuten asociada (objeto Bundle) mediante el meacutetodo getExtras()

Hecho esto tan soacutelo nos queda construir el texto de la etiqueta mediante su meacutetodo setText(texto) y recuperando el valor de nuestraclave almacenada en el objeto Bundle mediante getString(clave)

Con esto hemos concluido la loacutegica de las dos pantallas de nuestra aplicacioacuten y tan soacutelo nos queda un paso importante para finalizarnuestro desarrollo Como ya indicamos en un apartado anterior toda aplicacioacuten Android utiliza un fichero especial en formato XML(AndroidManifestxml) para definir entre otras cosas los diferentes elementos que la componen Por tanto todas las actividades denuestra aplicacioacuten deben quedar convenientemente definidas en este fichero En este caso Android Studio se debe haber ocupado pornosotros de definir ambas actividades en el fichero pero lo revisaremos para asiacute echar un vistazo al contenido

Si abrimos el fichero AndroidManifestxml veremos que contiene un elemento principal ltApplicationgt que debe incluir varios elementosltActivitygt uno por cada actividad incluida en nuestra aplicacioacuten En este caso comprobamos como efectivamente Android Studio ya seha ocupado de esto por nosotros aunque este fichero siacute podriacuteamos modificarlo a mano para hacer ajustes si fuera necesario

333435363738394041

Antildeadimos la informacioacuten al intent intentputExtras(b) Iniciamos la nueva actividad startActivity(intent) )

123456789

1011121314151617181920212223242526

package netsgoliverandroidholausuario import androidwidgetTextView public class SaludoActivity extends ActionBarActivity private TextView txtSaludo Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_saludo) Localizar los controles txtSaludo = (TextView)findViewById(RidTxtSaludo) Recuperamos la informacioacuten pasada en el intent Bundle bundle = thisgetIntent()getExtras() Construimos el mensaje a mostrar txtSaludosetText(Hola + bundlegetString(NOMBRE))

123456789

10

ltmanifest xmlnsandroid=httpschemasandroidcomapkresandroid package=netsgoliverandroidholausuario gt ltapplication androidallowBackup=true androidicon=drawableic_launcher androidlabel=stringapp_name androidtheme=styleAppTheme gt ltactivity androidname=MainActivity

Podemos ver como para cada actividad se indica entre otras cosas el nombre de su clase java asociada como valor delatributo androidname y su tiacutetulo mediante el atributo androidlabel maacutes adelante veremos queacute opciones adicionales podemosespecificar Vemos una vez maacutes coacutemo el tiacutetulo de las actividades se indica como referencia a cadenas de caracteres definidas comorecursos que deben estar incluidas como ya hemos comentado anteriormente en el fichero mainresvaluesstringsxml

El uacuteltimo elemento que revisaremos de nuestro proyecto aunque tampoco tendremos que modificarlo por ahora seraacute el ficherobuildgradle Pueden existir varios ficheros llamados asiacute en nuestra estructura de carpetas a distintos niveles pero normalmente siempreaccederemos al que estaacute al nivel maacutes interno en nuestro caso el que estaacute dentro del moacutedulo ldquoapprdquo Veamos queacute contiene

Gradle es el nuevo sistema de compilacioacuten y construccioacuten que ha adoptado Google para Android Studio Pero no es un sistema especiacuteficode Android sino que puede utilizarse con otros lenguajesplataformas Por tanto lo primero que indicamos en este fichero es queutilizaremos el plugin para Android mediante la sentencia ldquoapply pluginldquo A continuacioacuten definiremos varias opciones especiacuteficas deAndroid como las versiones de la API miacutenima (minSdkVersion) API objetivo (targetSdkVersion) y API de compilacioacuten(compileSdkVersion) que utilizaremosen el proyecto la versioacuten de las build tools (buildToolsVersion) que queremos utilizar (es unode los componentes que podemos descargaractualizar desde el SDK Manager) la versioacuten tanto interna (versionCode) como visible(versionName) de la aplicacioacuten o la configuracioacuten de ProGuard si estamos haciendo uso de eacutel (no nos preocupamos por ahora de esto)Durante el curso iremos viendo con maacutes detalle todos estos elementos El ultimo elemento llamado ldquodependenciesrdquo tambieacuten esimportante y nos serviraacute entre otras cosas para definir las libreriacuteas externas que utilizaremos en la aplicacioacuten Por defecto vemos que seantildeade la libreriacutea de compatibilidad appcompat que nos permite utilizar la Action Bar en la mayoriacutea de versiones de Android y todos losfichero jar que incluyamos en la carpeta libs

Llegados aquiacute y si todo ha ido bien deberiacuteamos poder ejecutar el proyecto sin errores y probar nuestra aplicacioacuten en el emulador peropara ello tendremos que definir primero uno Vamos a describir los pasos para hacerlo

Para poder probar aplicaciones Android en nuestro PC sin tener que recurrir a un dispositivo fiacutesico tenemos que definir lo que sedenominan AVD (Android Virtual Device) Para crear un AVD seleccionaremos el menuacute Tools Android AVD Manager Si es la primeravez que accedemos a esta herramienta veremos la pantalla siguiente

Pulsando el botoacuten central ldquoCreate a virtual devicerdquo accederemos al asistente para crear un AVD En el primer paso tendremos queseleccionar a la izquierda queacute tipo de dispositivo queremos que ldquosimulerdquo nuestro AVD (teleacutefono tablet reloj hellip) y el tamantildeo resolucioacuten ydensidad de piacutexeles de su pantalla En mi caso seleccionareacute por ejemplo las caracteriacutesticas de un Nexus 4 y pasaremos al siguiente pasopulsando ldquoNextldquo

111213141516171819202122

androidlabel=stringapp_name gt ltintent‐filtergt ltaction androidname=androidintentactionMAIN gt ltcategory androidname=androidintentcategoryLAUNCHER gt ltintent‐filtergt ltactivitygt ltactivity androidname=SaludoActivity androidlabel=stringtitle_activity_saludo gt ltactivitygt ltapplicationgtltmanifestgt

123456789

10111213141516171819202122232425

apply plugin comandroidapplication android compileSdkVersion 21 buildToolsVersion 2112 defaultConfig applicationId netsgoliverandroidholausuario minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName 10 buildTypes release minifyEnabled false proguardFiles getDefaultProguardFile(proguard‐androidtxt) proguard‐rulespro dependencies compile fileTree(dir libs include [jar]) compile comandroidsupportappcompat‐v72103

En la siguiente pantalla seleccionaremos la versioacuten de Android que utilizaraacute el AVD Apareceraacuten directamente disponibles las queinstalamos desde el SDK Manager al instalar el entorno aunque tenemos la posibilidad de descargar e instalar nuevas versiones desdeesta misma pantalla En mi caso utilizareacute KitKat (API 19) para este primer AVD (podemos crear tantos como queramos para probarnuestras aplicaciones sobre distintas condiciones)

En el siguiente paso del asistente podremos configurar algunas caracteriacutesticas maacutes del AVD como por ejemplo la cantidad de memoriaque tendraacute disponible si simularaacute tener caacutemara frontal yo trasera teclado fiacutesico hellip Recomiendo pulsar el botoacuten ldquoShow AdvancedSettingsrdquo para ver todas las opciones disponibles Si quieres puedes ajustar cualquiera de estos paraacutemetros pero por el momento osrecomiendo dejar todas las opciones por defecto Tan soacutelo nos aseguraremos de tener activada la opcioacuten ldquoUse Host GPUrdquo con la quenormalmente conseguiremos un mayor rendimiento del emulador

Tras pulsar el botoacuten Finish tendremos ya configurado nuestro AVD por lo que podremos comenzar a probar nuestras aplicaciones sobreeacutel

Para ello pulsaremos simplemente el menuacute Run Run lsquoapprsquo (o la tecla raacutepida Mayuacutes+F10) Android Studio nos preguntaraacute en queacutedispositivo queremos ejecutar la aplicacioacuten y nos mostraraacute dos listas La primera de ellas con los dispositivos que haya en ese momentoen funcionamiento (por ejemplo si ya teniacuteamos un emulador funcionando) y una lista desplegable con el resto de AVDs configurados ennuestro entorno Podremos seleccionar cualquiera de los emuladores disponibles en cualquiera de las dos listas Lo normal seraacutemantener un emulador siempre abierto y seleccionarlo de la primera lista cada vez que ejecutemos la aplicacioacuten

Elegireacute para este ejemplo el AVD que acabamos de crear y configurar Es posible que la primera ejecucioacuten se demore unos minutos tododependeraacute de las caracteriacutesticas de vuestro PC asiacute que paciencia

Estructura de un proyecto Android (Android Studio) Controles de seleccioacuten (V) RecyclerView

Si todo va bien tras una pequentildea (o no tan pequentildea) espera apareceraacute el emulador de Android y se iniciaraacute automaacuteticamente nuestraaplicacioacuten (si se inicia el emulador pero no se ejecuta automaacuteticamente la aplicacioacuten podemos volver a ejecutarla desde Android Studiomediante el menuacute Run sin cerrar el emulador ya abierto)

Podemos probar a escribir un nombre y pulsar el botoacuten ldquoAceptarrdquo para comprobar si el funcionamiento es el correcto

Y con esto terminamos por ahora Espero que esta aplicacioacuten de ejemplo os sea de ayuda para aprender temas baacutesicos en el desarrollopara Android como por ejemplo la definicioacuten de la interfaz graacutefica el coacutedigo java necesario para acceder y manipular los elementos dedicha interfaz y la forma de comunicar diferentes actividades de Android En los apartados siguientes veremos algunos de estos temas deforma mucho maacutes especiacutefica

Podeacuteis consultar online y descargar el coacutedigo fuente completo de este artiacuteculo desde github

Comparte esta entrada

Facebook Twitter Google Correo electroacutenico

SuscriacutebeteSubscribe to our eshymail newsletter to receive updates

Related Posts

Actionbar Appbar Toolbar en Android (I)Interfaz de usuario en Android CardViewControles de seleccioacuten (V) RecyclerViewEstructura de un proyecto Android (Android Studio)Entorno de desarrollo Android (Android Studio)

Android Studio aplicacioacuten baacutesicos conceptos curso android ejemplo primera sencillo

29 Responses to Desarrollando una aplicacioacuten Android sencilla (Android Studio)

Carlos 20012015 at 212

Hola una consultaen el metodo SaludoActivity de la clase SaludoActivityjava cuando declaro lo siguiente

private TextView txtSaludo

me muestra en color violeta esa variable y con el msj ldquoField can be converted to a local variablerdquoy luego en el mismo metodo y en la siguiente linea

txtSaludo = (TextView)findViewById(RidTxtSaludo)

me marca la TxtSaludo en rojo con el msj ldquocannot resolve the symbol lsquoTxtSaludorsquo rdquocomo lo soluciono y porque paso eso

Kazama 20012015 at 523

Excelente tutorial hasta aca todo bien conmigo solo q tuve q agregar una libreriaimport androidviewViewen el MainActivity

y me corrio excelente otro comentario es que tuve problemas con HAXM pero ya lo resolvi y tambien con correrla desde mi movil (Samsung GTshyS6010)conectado a USB por modo depuracion pero al final logre solucionar eso tambien

seguire por aca leyendo y dejando mis comentarios de antemano Mil gracias

Francisco 24012015 at 507

Hola muy buen tutorial esta explicado exelentementehellip

Tengo una duda no puedo ejecutar el emulador no puedo instalarlo no es compatible me dice Tengo un procesador amd iquestse podraacute instalar

Joel 24012015 at 1718

Excelente tutorial he realizado mi primer ejemplo en Android gracias a este magnifico tutorial detallado magnifcamente

Tuve ciertos inconvenientes que los resolvi con mucha perseverancia y lectura y que me ayudo a conocer mejor el lenguaje

Uno de los temas que mas tuve problemas fue con la constante ldquoRrdquo que el sistema no la veia

Lo recomiendo muy bueno

javier 27012015 at 150

A mi me estaacute pasando que siguiendo el tutorial no consigo que la Ridhelliphellip me aparezca en negro todo el rato la R la tengo en rojo y pone elsiguiente texto situaacutendome encimaCannot resolve symbol lsquoRrsquo

Podriacuteais indicarme coacutemo solucionarlo No seacute queacute estoy haciendo malhellip

Mil gracias de antemano

Saludos

Oscar 29012015 at 2237

Hola no entiendo que siginifca el parametro v en public void onClick(View v)

Rodrigo 31012015 at 1943

Veniacuteas explicando muy bien hasta que derrapaste como un campeoacuten en

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Siendo nuevo hasta ahiacute entendiacute perfectamente de ahiacute te olvidaste de explicar bien donde copiar cada uno de los coacutedigos que vas dictando Al principio loexplicabas muy bien despueacutes te fuiste al carajo

admin 31012015 at 2209

Me alegra recibir criacuteticas tan constructivas Al final de cada artiacuteculo teneacuteis el enlace (GitHub) al coacutedigo completo del ejemplo descrito que

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 5: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Como ya indicamos en el apartado anterior la comunicacioacuten entre los distintos componentes y aplicaciones en Android se realizamediante intents por lo que el primer paso seraacute crear un objeto de este tipo Existen varias variantes del constructor de la clase Intentcada una de ellas dirigida a unas determinadas acciones En nuestro caso particular vamos a utilizar el intent para iniciar una actividaddesde otra actividad de la misma aplicacioacuten para lo que pasaremos a su constructor una referencia a la propiaactividad llamadora (MainActivitythis) y la clase de la actividad llamada (SaludoActivityclass)

Si quisieacuteramos tan soacutelo mostrar una nueva actividad ya tan soacutelo nos quedariacutea llamar a startActivity() pasaacutendole como paraacutemetro elintent creado Pero en nuestro ejemplo queremos tambieacuten pasarle cierta informacioacuten a la actividad llamada concretamente el nombre queintroduzca el usuario en el cuadro de texto de la pantalla principal Para hacer esto vamos a crear un objeto Bundle que puede conteneruna lista de pares claveshyvalor con toda la informacioacuten a pasar entre actividades En nuestro caso soacutelo antildeadiremos un dato detipo String mediante el meacutetodo putString(clave valor) Como clave para nuestro dato yo he elegido el literal ldquoNOMBRErdquo aunquepodeacuteis utilizar cualquier otro literal descriptivo Por su parte el valor de esta clave lo obtendremos consultando el contenido del cuadro detexto de la actividad principal lo que podemos conseguir llamando a su meacutetodo getText() y convirtiendo este contenido a texto mediantetoString() (maacutes adelante en el curso veremos por queacute es necesaria esta conversioacuten)

Tras esto antildeadiremos la informacioacuten al intent mediante el meacutetodo putExtras() Si necesitaacuteramos pasar maacutes datos entre una actividad yotra no tendriacuteamos maacutes que repetir estos pasos para todos los paraacutemetros necesarios

Con esto hemos finalizado ya actividad principal de la aplicacioacuten por lo que pasaremos ya a la secundaria Comenzaremos de formaanaacuteloga a la anterior ampliando el meacutetodo onCreate() obteniendo las referencias a los objetos que manipularemos esta vez soacutelo laetiqueta de texto Tras esto viene lo maacutes interesante debemos recuperar la informacioacuten pasada desde la actividad principal y asignarlacomo texto de la etiqueta Para ello accederemos en primer lugar al intent que ha originado la actividad actual mediante elmeacutetodo getIntent() y recuperaremos su informacioacuten asociada (objeto Bundle) mediante el meacutetodo getExtras()

Hecho esto tan soacutelo nos queda construir el texto de la etiqueta mediante su meacutetodo setText(texto) y recuperando el valor de nuestraclave almacenada en el objeto Bundle mediante getString(clave)

Con esto hemos concluido la loacutegica de las dos pantallas de nuestra aplicacioacuten y tan soacutelo nos queda un paso importante para finalizarnuestro desarrollo Como ya indicamos en un apartado anterior toda aplicacioacuten Android utiliza un fichero especial en formato XML(AndroidManifestxml) para definir entre otras cosas los diferentes elementos que la componen Por tanto todas las actividades denuestra aplicacioacuten deben quedar convenientemente definidas en este fichero En este caso Android Studio se debe haber ocupado pornosotros de definir ambas actividades en el fichero pero lo revisaremos para asiacute echar un vistazo al contenido

Si abrimos el fichero AndroidManifestxml veremos que contiene un elemento principal ltApplicationgt que debe incluir varios elementosltActivitygt uno por cada actividad incluida en nuestra aplicacioacuten En este caso comprobamos como efectivamente Android Studio ya seha ocupado de esto por nosotros aunque este fichero siacute podriacuteamos modificarlo a mano para hacer ajustes si fuera necesario

333435363738394041

Antildeadimos la informacioacuten al intent intentputExtras(b) Iniciamos la nueva actividad startActivity(intent) )

123456789

1011121314151617181920212223242526

package netsgoliverandroidholausuario import androidwidgetTextView public class SaludoActivity extends ActionBarActivity private TextView txtSaludo Override protected void onCreate(Bundle savedInstanceState) superonCreate(savedInstanceState) setContentView(Rlayoutactivity_saludo) Localizar los controles txtSaludo = (TextView)findViewById(RidTxtSaludo) Recuperamos la informacioacuten pasada en el intent Bundle bundle = thisgetIntent()getExtras() Construimos el mensaje a mostrar txtSaludosetText(Hola + bundlegetString(NOMBRE))

123456789

10

ltmanifest xmlnsandroid=httpschemasandroidcomapkresandroid package=netsgoliverandroidholausuario gt ltapplication androidallowBackup=true androidicon=drawableic_launcher androidlabel=stringapp_name androidtheme=styleAppTheme gt ltactivity androidname=MainActivity

Podemos ver como para cada actividad se indica entre otras cosas el nombre de su clase java asociada como valor delatributo androidname y su tiacutetulo mediante el atributo androidlabel maacutes adelante veremos queacute opciones adicionales podemosespecificar Vemos una vez maacutes coacutemo el tiacutetulo de las actividades se indica como referencia a cadenas de caracteres definidas comorecursos que deben estar incluidas como ya hemos comentado anteriormente en el fichero mainresvaluesstringsxml

El uacuteltimo elemento que revisaremos de nuestro proyecto aunque tampoco tendremos que modificarlo por ahora seraacute el ficherobuildgradle Pueden existir varios ficheros llamados asiacute en nuestra estructura de carpetas a distintos niveles pero normalmente siempreaccederemos al que estaacute al nivel maacutes interno en nuestro caso el que estaacute dentro del moacutedulo ldquoapprdquo Veamos queacute contiene

Gradle es el nuevo sistema de compilacioacuten y construccioacuten que ha adoptado Google para Android Studio Pero no es un sistema especiacuteficode Android sino que puede utilizarse con otros lenguajesplataformas Por tanto lo primero que indicamos en este fichero es queutilizaremos el plugin para Android mediante la sentencia ldquoapply pluginldquo A continuacioacuten definiremos varias opciones especiacuteficas deAndroid como las versiones de la API miacutenima (minSdkVersion) API objetivo (targetSdkVersion) y API de compilacioacuten(compileSdkVersion) que utilizaremosen el proyecto la versioacuten de las build tools (buildToolsVersion) que queremos utilizar (es unode los componentes que podemos descargaractualizar desde el SDK Manager) la versioacuten tanto interna (versionCode) como visible(versionName) de la aplicacioacuten o la configuracioacuten de ProGuard si estamos haciendo uso de eacutel (no nos preocupamos por ahora de esto)Durante el curso iremos viendo con maacutes detalle todos estos elementos El ultimo elemento llamado ldquodependenciesrdquo tambieacuten esimportante y nos serviraacute entre otras cosas para definir las libreriacuteas externas que utilizaremos en la aplicacioacuten Por defecto vemos que seantildeade la libreriacutea de compatibilidad appcompat que nos permite utilizar la Action Bar en la mayoriacutea de versiones de Android y todos losfichero jar que incluyamos en la carpeta libs

Llegados aquiacute y si todo ha ido bien deberiacuteamos poder ejecutar el proyecto sin errores y probar nuestra aplicacioacuten en el emulador peropara ello tendremos que definir primero uno Vamos a describir los pasos para hacerlo

Para poder probar aplicaciones Android en nuestro PC sin tener que recurrir a un dispositivo fiacutesico tenemos que definir lo que sedenominan AVD (Android Virtual Device) Para crear un AVD seleccionaremos el menuacute Tools Android AVD Manager Si es la primeravez que accedemos a esta herramienta veremos la pantalla siguiente

Pulsando el botoacuten central ldquoCreate a virtual devicerdquo accederemos al asistente para crear un AVD En el primer paso tendremos queseleccionar a la izquierda queacute tipo de dispositivo queremos que ldquosimulerdquo nuestro AVD (teleacutefono tablet reloj hellip) y el tamantildeo resolucioacuten ydensidad de piacutexeles de su pantalla En mi caso seleccionareacute por ejemplo las caracteriacutesticas de un Nexus 4 y pasaremos al siguiente pasopulsando ldquoNextldquo

111213141516171819202122

androidlabel=stringapp_name gt ltintent‐filtergt ltaction androidname=androidintentactionMAIN gt ltcategory androidname=androidintentcategoryLAUNCHER gt ltintent‐filtergt ltactivitygt ltactivity androidname=SaludoActivity androidlabel=stringtitle_activity_saludo gt ltactivitygt ltapplicationgtltmanifestgt

123456789

10111213141516171819202122232425

apply plugin comandroidapplication android compileSdkVersion 21 buildToolsVersion 2112 defaultConfig applicationId netsgoliverandroidholausuario minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName 10 buildTypes release minifyEnabled false proguardFiles getDefaultProguardFile(proguard‐androidtxt) proguard‐rulespro dependencies compile fileTree(dir libs include [jar]) compile comandroidsupportappcompat‐v72103

En la siguiente pantalla seleccionaremos la versioacuten de Android que utilizaraacute el AVD Apareceraacuten directamente disponibles las queinstalamos desde el SDK Manager al instalar el entorno aunque tenemos la posibilidad de descargar e instalar nuevas versiones desdeesta misma pantalla En mi caso utilizareacute KitKat (API 19) para este primer AVD (podemos crear tantos como queramos para probarnuestras aplicaciones sobre distintas condiciones)

En el siguiente paso del asistente podremos configurar algunas caracteriacutesticas maacutes del AVD como por ejemplo la cantidad de memoriaque tendraacute disponible si simularaacute tener caacutemara frontal yo trasera teclado fiacutesico hellip Recomiendo pulsar el botoacuten ldquoShow AdvancedSettingsrdquo para ver todas las opciones disponibles Si quieres puedes ajustar cualquiera de estos paraacutemetros pero por el momento osrecomiendo dejar todas las opciones por defecto Tan soacutelo nos aseguraremos de tener activada la opcioacuten ldquoUse Host GPUrdquo con la quenormalmente conseguiremos un mayor rendimiento del emulador

Tras pulsar el botoacuten Finish tendremos ya configurado nuestro AVD por lo que podremos comenzar a probar nuestras aplicaciones sobreeacutel

Para ello pulsaremos simplemente el menuacute Run Run lsquoapprsquo (o la tecla raacutepida Mayuacutes+F10) Android Studio nos preguntaraacute en queacutedispositivo queremos ejecutar la aplicacioacuten y nos mostraraacute dos listas La primera de ellas con los dispositivos que haya en ese momentoen funcionamiento (por ejemplo si ya teniacuteamos un emulador funcionando) y una lista desplegable con el resto de AVDs configurados ennuestro entorno Podremos seleccionar cualquiera de los emuladores disponibles en cualquiera de las dos listas Lo normal seraacutemantener un emulador siempre abierto y seleccionarlo de la primera lista cada vez que ejecutemos la aplicacioacuten

Elegireacute para este ejemplo el AVD que acabamos de crear y configurar Es posible que la primera ejecucioacuten se demore unos minutos tododependeraacute de las caracteriacutesticas de vuestro PC asiacute que paciencia

Estructura de un proyecto Android (Android Studio) Controles de seleccioacuten (V) RecyclerView

Si todo va bien tras una pequentildea (o no tan pequentildea) espera apareceraacute el emulador de Android y se iniciaraacute automaacuteticamente nuestraaplicacioacuten (si se inicia el emulador pero no se ejecuta automaacuteticamente la aplicacioacuten podemos volver a ejecutarla desde Android Studiomediante el menuacute Run sin cerrar el emulador ya abierto)

Podemos probar a escribir un nombre y pulsar el botoacuten ldquoAceptarrdquo para comprobar si el funcionamiento es el correcto

Y con esto terminamos por ahora Espero que esta aplicacioacuten de ejemplo os sea de ayuda para aprender temas baacutesicos en el desarrollopara Android como por ejemplo la definicioacuten de la interfaz graacutefica el coacutedigo java necesario para acceder y manipular los elementos dedicha interfaz y la forma de comunicar diferentes actividades de Android En los apartados siguientes veremos algunos de estos temas deforma mucho maacutes especiacutefica

Podeacuteis consultar online y descargar el coacutedigo fuente completo de este artiacuteculo desde github

Comparte esta entrada

Facebook Twitter Google Correo electroacutenico

SuscriacutebeteSubscribe to our eshymail newsletter to receive updates

Related Posts

Actionbar Appbar Toolbar en Android (I)Interfaz de usuario en Android CardViewControles de seleccioacuten (V) RecyclerViewEstructura de un proyecto Android (Android Studio)Entorno de desarrollo Android (Android Studio)

Android Studio aplicacioacuten baacutesicos conceptos curso android ejemplo primera sencillo

29 Responses to Desarrollando una aplicacioacuten Android sencilla (Android Studio)

Carlos 20012015 at 212

Hola una consultaen el metodo SaludoActivity de la clase SaludoActivityjava cuando declaro lo siguiente

private TextView txtSaludo

me muestra en color violeta esa variable y con el msj ldquoField can be converted to a local variablerdquoy luego en el mismo metodo y en la siguiente linea

txtSaludo = (TextView)findViewById(RidTxtSaludo)

me marca la TxtSaludo en rojo con el msj ldquocannot resolve the symbol lsquoTxtSaludorsquo rdquocomo lo soluciono y porque paso eso

Kazama 20012015 at 523

Excelente tutorial hasta aca todo bien conmigo solo q tuve q agregar una libreriaimport androidviewViewen el MainActivity

y me corrio excelente otro comentario es que tuve problemas con HAXM pero ya lo resolvi y tambien con correrla desde mi movil (Samsung GTshyS6010)conectado a USB por modo depuracion pero al final logre solucionar eso tambien

seguire por aca leyendo y dejando mis comentarios de antemano Mil gracias

Francisco 24012015 at 507

Hola muy buen tutorial esta explicado exelentementehellip

Tengo una duda no puedo ejecutar el emulador no puedo instalarlo no es compatible me dice Tengo un procesador amd iquestse podraacute instalar

Joel 24012015 at 1718

Excelente tutorial he realizado mi primer ejemplo en Android gracias a este magnifico tutorial detallado magnifcamente

Tuve ciertos inconvenientes que los resolvi con mucha perseverancia y lectura y que me ayudo a conocer mejor el lenguaje

Uno de los temas que mas tuve problemas fue con la constante ldquoRrdquo que el sistema no la veia

Lo recomiendo muy bueno

javier 27012015 at 150

A mi me estaacute pasando que siguiendo el tutorial no consigo que la Ridhelliphellip me aparezca en negro todo el rato la R la tengo en rojo y pone elsiguiente texto situaacutendome encimaCannot resolve symbol lsquoRrsquo

Podriacuteais indicarme coacutemo solucionarlo No seacute queacute estoy haciendo malhellip

Mil gracias de antemano

Saludos

Oscar 29012015 at 2237

Hola no entiendo que siginifca el parametro v en public void onClick(View v)

Rodrigo 31012015 at 1943

Veniacuteas explicando muy bien hasta que derrapaste como un campeoacuten en

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Siendo nuevo hasta ahiacute entendiacute perfectamente de ahiacute te olvidaste de explicar bien donde copiar cada uno de los coacutedigos que vas dictando Al principio loexplicabas muy bien despueacutes te fuiste al carajo

admin 31012015 at 2209

Me alegra recibir criacuteticas tan constructivas Al final de cada artiacuteculo teneacuteis el enlace (GitHub) al coacutedigo completo del ejemplo descrito que

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 6: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Podemos ver como para cada actividad se indica entre otras cosas el nombre de su clase java asociada como valor delatributo androidname y su tiacutetulo mediante el atributo androidlabel maacutes adelante veremos queacute opciones adicionales podemosespecificar Vemos una vez maacutes coacutemo el tiacutetulo de las actividades se indica como referencia a cadenas de caracteres definidas comorecursos que deben estar incluidas como ya hemos comentado anteriormente en el fichero mainresvaluesstringsxml

El uacuteltimo elemento que revisaremos de nuestro proyecto aunque tampoco tendremos que modificarlo por ahora seraacute el ficherobuildgradle Pueden existir varios ficheros llamados asiacute en nuestra estructura de carpetas a distintos niveles pero normalmente siempreaccederemos al que estaacute al nivel maacutes interno en nuestro caso el que estaacute dentro del moacutedulo ldquoapprdquo Veamos queacute contiene

Gradle es el nuevo sistema de compilacioacuten y construccioacuten que ha adoptado Google para Android Studio Pero no es un sistema especiacuteficode Android sino que puede utilizarse con otros lenguajesplataformas Por tanto lo primero que indicamos en este fichero es queutilizaremos el plugin para Android mediante la sentencia ldquoapply pluginldquo A continuacioacuten definiremos varias opciones especiacuteficas deAndroid como las versiones de la API miacutenima (minSdkVersion) API objetivo (targetSdkVersion) y API de compilacioacuten(compileSdkVersion) que utilizaremosen el proyecto la versioacuten de las build tools (buildToolsVersion) que queremos utilizar (es unode los componentes que podemos descargaractualizar desde el SDK Manager) la versioacuten tanto interna (versionCode) como visible(versionName) de la aplicacioacuten o la configuracioacuten de ProGuard si estamos haciendo uso de eacutel (no nos preocupamos por ahora de esto)Durante el curso iremos viendo con maacutes detalle todos estos elementos El ultimo elemento llamado ldquodependenciesrdquo tambieacuten esimportante y nos serviraacute entre otras cosas para definir las libreriacuteas externas que utilizaremos en la aplicacioacuten Por defecto vemos que seantildeade la libreriacutea de compatibilidad appcompat que nos permite utilizar la Action Bar en la mayoriacutea de versiones de Android y todos losfichero jar que incluyamos en la carpeta libs

Llegados aquiacute y si todo ha ido bien deberiacuteamos poder ejecutar el proyecto sin errores y probar nuestra aplicacioacuten en el emulador peropara ello tendremos que definir primero uno Vamos a describir los pasos para hacerlo

Para poder probar aplicaciones Android en nuestro PC sin tener que recurrir a un dispositivo fiacutesico tenemos que definir lo que sedenominan AVD (Android Virtual Device) Para crear un AVD seleccionaremos el menuacute Tools Android AVD Manager Si es la primeravez que accedemos a esta herramienta veremos la pantalla siguiente

Pulsando el botoacuten central ldquoCreate a virtual devicerdquo accederemos al asistente para crear un AVD En el primer paso tendremos queseleccionar a la izquierda queacute tipo de dispositivo queremos que ldquosimulerdquo nuestro AVD (teleacutefono tablet reloj hellip) y el tamantildeo resolucioacuten ydensidad de piacutexeles de su pantalla En mi caso seleccionareacute por ejemplo las caracteriacutesticas de un Nexus 4 y pasaremos al siguiente pasopulsando ldquoNextldquo

111213141516171819202122

androidlabel=stringapp_name gt ltintent‐filtergt ltaction androidname=androidintentactionMAIN gt ltcategory androidname=androidintentcategoryLAUNCHER gt ltintent‐filtergt ltactivitygt ltactivity androidname=SaludoActivity androidlabel=stringtitle_activity_saludo gt ltactivitygt ltapplicationgtltmanifestgt

123456789

10111213141516171819202122232425

apply plugin comandroidapplication android compileSdkVersion 21 buildToolsVersion 2112 defaultConfig applicationId netsgoliverandroidholausuario minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName 10 buildTypes release minifyEnabled false proguardFiles getDefaultProguardFile(proguard‐androidtxt) proguard‐rulespro dependencies compile fileTree(dir libs include [jar]) compile comandroidsupportappcompat‐v72103

En la siguiente pantalla seleccionaremos la versioacuten de Android que utilizaraacute el AVD Apareceraacuten directamente disponibles las queinstalamos desde el SDK Manager al instalar el entorno aunque tenemos la posibilidad de descargar e instalar nuevas versiones desdeesta misma pantalla En mi caso utilizareacute KitKat (API 19) para este primer AVD (podemos crear tantos como queramos para probarnuestras aplicaciones sobre distintas condiciones)

En el siguiente paso del asistente podremos configurar algunas caracteriacutesticas maacutes del AVD como por ejemplo la cantidad de memoriaque tendraacute disponible si simularaacute tener caacutemara frontal yo trasera teclado fiacutesico hellip Recomiendo pulsar el botoacuten ldquoShow AdvancedSettingsrdquo para ver todas las opciones disponibles Si quieres puedes ajustar cualquiera de estos paraacutemetros pero por el momento osrecomiendo dejar todas las opciones por defecto Tan soacutelo nos aseguraremos de tener activada la opcioacuten ldquoUse Host GPUrdquo con la quenormalmente conseguiremos un mayor rendimiento del emulador

Tras pulsar el botoacuten Finish tendremos ya configurado nuestro AVD por lo que podremos comenzar a probar nuestras aplicaciones sobreeacutel

Para ello pulsaremos simplemente el menuacute Run Run lsquoapprsquo (o la tecla raacutepida Mayuacutes+F10) Android Studio nos preguntaraacute en queacutedispositivo queremos ejecutar la aplicacioacuten y nos mostraraacute dos listas La primera de ellas con los dispositivos que haya en ese momentoen funcionamiento (por ejemplo si ya teniacuteamos un emulador funcionando) y una lista desplegable con el resto de AVDs configurados ennuestro entorno Podremos seleccionar cualquiera de los emuladores disponibles en cualquiera de las dos listas Lo normal seraacutemantener un emulador siempre abierto y seleccionarlo de la primera lista cada vez que ejecutemos la aplicacioacuten

Elegireacute para este ejemplo el AVD que acabamos de crear y configurar Es posible que la primera ejecucioacuten se demore unos minutos tododependeraacute de las caracteriacutesticas de vuestro PC asiacute que paciencia

Estructura de un proyecto Android (Android Studio) Controles de seleccioacuten (V) RecyclerView

Si todo va bien tras una pequentildea (o no tan pequentildea) espera apareceraacute el emulador de Android y se iniciaraacute automaacuteticamente nuestraaplicacioacuten (si se inicia el emulador pero no se ejecuta automaacuteticamente la aplicacioacuten podemos volver a ejecutarla desde Android Studiomediante el menuacute Run sin cerrar el emulador ya abierto)

Podemos probar a escribir un nombre y pulsar el botoacuten ldquoAceptarrdquo para comprobar si el funcionamiento es el correcto

Y con esto terminamos por ahora Espero que esta aplicacioacuten de ejemplo os sea de ayuda para aprender temas baacutesicos en el desarrollopara Android como por ejemplo la definicioacuten de la interfaz graacutefica el coacutedigo java necesario para acceder y manipular los elementos dedicha interfaz y la forma de comunicar diferentes actividades de Android En los apartados siguientes veremos algunos de estos temas deforma mucho maacutes especiacutefica

Podeacuteis consultar online y descargar el coacutedigo fuente completo de este artiacuteculo desde github

Comparte esta entrada

Facebook Twitter Google Correo electroacutenico

SuscriacutebeteSubscribe to our eshymail newsletter to receive updates

Related Posts

Actionbar Appbar Toolbar en Android (I)Interfaz de usuario en Android CardViewControles de seleccioacuten (V) RecyclerViewEstructura de un proyecto Android (Android Studio)Entorno de desarrollo Android (Android Studio)

Android Studio aplicacioacuten baacutesicos conceptos curso android ejemplo primera sencillo

29 Responses to Desarrollando una aplicacioacuten Android sencilla (Android Studio)

Carlos 20012015 at 212

Hola una consultaen el metodo SaludoActivity de la clase SaludoActivityjava cuando declaro lo siguiente

private TextView txtSaludo

me muestra en color violeta esa variable y con el msj ldquoField can be converted to a local variablerdquoy luego en el mismo metodo y en la siguiente linea

txtSaludo = (TextView)findViewById(RidTxtSaludo)

me marca la TxtSaludo en rojo con el msj ldquocannot resolve the symbol lsquoTxtSaludorsquo rdquocomo lo soluciono y porque paso eso

Kazama 20012015 at 523

Excelente tutorial hasta aca todo bien conmigo solo q tuve q agregar una libreriaimport androidviewViewen el MainActivity

y me corrio excelente otro comentario es que tuve problemas con HAXM pero ya lo resolvi y tambien con correrla desde mi movil (Samsung GTshyS6010)conectado a USB por modo depuracion pero al final logre solucionar eso tambien

seguire por aca leyendo y dejando mis comentarios de antemano Mil gracias

Francisco 24012015 at 507

Hola muy buen tutorial esta explicado exelentementehellip

Tengo una duda no puedo ejecutar el emulador no puedo instalarlo no es compatible me dice Tengo un procesador amd iquestse podraacute instalar

Joel 24012015 at 1718

Excelente tutorial he realizado mi primer ejemplo en Android gracias a este magnifico tutorial detallado magnifcamente

Tuve ciertos inconvenientes que los resolvi con mucha perseverancia y lectura y que me ayudo a conocer mejor el lenguaje

Uno de los temas que mas tuve problemas fue con la constante ldquoRrdquo que el sistema no la veia

Lo recomiendo muy bueno

javier 27012015 at 150

A mi me estaacute pasando que siguiendo el tutorial no consigo que la Ridhelliphellip me aparezca en negro todo el rato la R la tengo en rojo y pone elsiguiente texto situaacutendome encimaCannot resolve symbol lsquoRrsquo

Podriacuteais indicarme coacutemo solucionarlo No seacute queacute estoy haciendo malhellip

Mil gracias de antemano

Saludos

Oscar 29012015 at 2237

Hola no entiendo que siginifca el parametro v en public void onClick(View v)

Rodrigo 31012015 at 1943

Veniacuteas explicando muy bien hasta que derrapaste como un campeoacuten en

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Siendo nuevo hasta ahiacute entendiacute perfectamente de ahiacute te olvidaste de explicar bien donde copiar cada uno de los coacutedigos que vas dictando Al principio loexplicabas muy bien despueacutes te fuiste al carajo

admin 31012015 at 2209

Me alegra recibir criacuteticas tan constructivas Al final de cada artiacuteculo teneacuteis el enlace (GitHub) al coacutedigo completo del ejemplo descrito que

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 7: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

En la siguiente pantalla seleccionaremos la versioacuten de Android que utilizaraacute el AVD Apareceraacuten directamente disponibles las queinstalamos desde el SDK Manager al instalar el entorno aunque tenemos la posibilidad de descargar e instalar nuevas versiones desdeesta misma pantalla En mi caso utilizareacute KitKat (API 19) para este primer AVD (podemos crear tantos como queramos para probarnuestras aplicaciones sobre distintas condiciones)

En el siguiente paso del asistente podremos configurar algunas caracteriacutesticas maacutes del AVD como por ejemplo la cantidad de memoriaque tendraacute disponible si simularaacute tener caacutemara frontal yo trasera teclado fiacutesico hellip Recomiendo pulsar el botoacuten ldquoShow AdvancedSettingsrdquo para ver todas las opciones disponibles Si quieres puedes ajustar cualquiera de estos paraacutemetros pero por el momento osrecomiendo dejar todas las opciones por defecto Tan soacutelo nos aseguraremos de tener activada la opcioacuten ldquoUse Host GPUrdquo con la quenormalmente conseguiremos un mayor rendimiento del emulador

Tras pulsar el botoacuten Finish tendremos ya configurado nuestro AVD por lo que podremos comenzar a probar nuestras aplicaciones sobreeacutel

Para ello pulsaremos simplemente el menuacute Run Run lsquoapprsquo (o la tecla raacutepida Mayuacutes+F10) Android Studio nos preguntaraacute en queacutedispositivo queremos ejecutar la aplicacioacuten y nos mostraraacute dos listas La primera de ellas con los dispositivos que haya en ese momentoen funcionamiento (por ejemplo si ya teniacuteamos un emulador funcionando) y una lista desplegable con el resto de AVDs configurados ennuestro entorno Podremos seleccionar cualquiera de los emuladores disponibles en cualquiera de las dos listas Lo normal seraacutemantener un emulador siempre abierto y seleccionarlo de la primera lista cada vez que ejecutemos la aplicacioacuten

Elegireacute para este ejemplo el AVD que acabamos de crear y configurar Es posible que la primera ejecucioacuten se demore unos minutos tododependeraacute de las caracteriacutesticas de vuestro PC asiacute que paciencia

Estructura de un proyecto Android (Android Studio) Controles de seleccioacuten (V) RecyclerView

Si todo va bien tras una pequentildea (o no tan pequentildea) espera apareceraacute el emulador de Android y se iniciaraacute automaacuteticamente nuestraaplicacioacuten (si se inicia el emulador pero no se ejecuta automaacuteticamente la aplicacioacuten podemos volver a ejecutarla desde Android Studiomediante el menuacute Run sin cerrar el emulador ya abierto)

Podemos probar a escribir un nombre y pulsar el botoacuten ldquoAceptarrdquo para comprobar si el funcionamiento es el correcto

Y con esto terminamos por ahora Espero que esta aplicacioacuten de ejemplo os sea de ayuda para aprender temas baacutesicos en el desarrollopara Android como por ejemplo la definicioacuten de la interfaz graacutefica el coacutedigo java necesario para acceder y manipular los elementos dedicha interfaz y la forma de comunicar diferentes actividades de Android En los apartados siguientes veremos algunos de estos temas deforma mucho maacutes especiacutefica

Podeacuteis consultar online y descargar el coacutedigo fuente completo de este artiacuteculo desde github

Comparte esta entrada

Facebook Twitter Google Correo electroacutenico

SuscriacutebeteSubscribe to our eshymail newsletter to receive updates

Related Posts

Actionbar Appbar Toolbar en Android (I)Interfaz de usuario en Android CardViewControles de seleccioacuten (V) RecyclerViewEstructura de un proyecto Android (Android Studio)Entorno de desarrollo Android (Android Studio)

Android Studio aplicacioacuten baacutesicos conceptos curso android ejemplo primera sencillo

29 Responses to Desarrollando una aplicacioacuten Android sencilla (Android Studio)

Carlos 20012015 at 212

Hola una consultaen el metodo SaludoActivity de la clase SaludoActivityjava cuando declaro lo siguiente

private TextView txtSaludo

me muestra en color violeta esa variable y con el msj ldquoField can be converted to a local variablerdquoy luego en el mismo metodo y en la siguiente linea

txtSaludo = (TextView)findViewById(RidTxtSaludo)

me marca la TxtSaludo en rojo con el msj ldquocannot resolve the symbol lsquoTxtSaludorsquo rdquocomo lo soluciono y porque paso eso

Kazama 20012015 at 523

Excelente tutorial hasta aca todo bien conmigo solo q tuve q agregar una libreriaimport androidviewViewen el MainActivity

y me corrio excelente otro comentario es que tuve problemas con HAXM pero ya lo resolvi y tambien con correrla desde mi movil (Samsung GTshyS6010)conectado a USB por modo depuracion pero al final logre solucionar eso tambien

seguire por aca leyendo y dejando mis comentarios de antemano Mil gracias

Francisco 24012015 at 507

Hola muy buen tutorial esta explicado exelentementehellip

Tengo una duda no puedo ejecutar el emulador no puedo instalarlo no es compatible me dice Tengo un procesador amd iquestse podraacute instalar

Joel 24012015 at 1718

Excelente tutorial he realizado mi primer ejemplo en Android gracias a este magnifico tutorial detallado magnifcamente

Tuve ciertos inconvenientes que los resolvi con mucha perseverancia y lectura y que me ayudo a conocer mejor el lenguaje

Uno de los temas que mas tuve problemas fue con la constante ldquoRrdquo que el sistema no la veia

Lo recomiendo muy bueno

javier 27012015 at 150

A mi me estaacute pasando que siguiendo el tutorial no consigo que la Ridhelliphellip me aparezca en negro todo el rato la R la tengo en rojo y pone elsiguiente texto situaacutendome encimaCannot resolve symbol lsquoRrsquo

Podriacuteais indicarme coacutemo solucionarlo No seacute queacute estoy haciendo malhellip

Mil gracias de antemano

Saludos

Oscar 29012015 at 2237

Hola no entiendo que siginifca el parametro v en public void onClick(View v)

Rodrigo 31012015 at 1943

Veniacuteas explicando muy bien hasta que derrapaste como un campeoacuten en

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Siendo nuevo hasta ahiacute entendiacute perfectamente de ahiacute te olvidaste de explicar bien donde copiar cada uno de los coacutedigos que vas dictando Al principio loexplicabas muy bien despueacutes te fuiste al carajo

admin 31012015 at 2209

Me alegra recibir criacuteticas tan constructivas Al final de cada artiacuteculo teneacuteis el enlace (GitHub) al coacutedigo completo del ejemplo descrito que

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 8: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Estructura de un proyecto Android (Android Studio) Controles de seleccioacuten (V) RecyclerView

Si todo va bien tras una pequentildea (o no tan pequentildea) espera apareceraacute el emulador de Android y se iniciaraacute automaacuteticamente nuestraaplicacioacuten (si se inicia el emulador pero no se ejecuta automaacuteticamente la aplicacioacuten podemos volver a ejecutarla desde Android Studiomediante el menuacute Run sin cerrar el emulador ya abierto)

Podemos probar a escribir un nombre y pulsar el botoacuten ldquoAceptarrdquo para comprobar si el funcionamiento es el correcto

Y con esto terminamos por ahora Espero que esta aplicacioacuten de ejemplo os sea de ayuda para aprender temas baacutesicos en el desarrollopara Android como por ejemplo la definicioacuten de la interfaz graacutefica el coacutedigo java necesario para acceder y manipular los elementos dedicha interfaz y la forma de comunicar diferentes actividades de Android En los apartados siguientes veremos algunos de estos temas deforma mucho maacutes especiacutefica

Podeacuteis consultar online y descargar el coacutedigo fuente completo de este artiacuteculo desde github

Comparte esta entrada

Facebook Twitter Google Correo electroacutenico

SuscriacutebeteSubscribe to our eshymail newsletter to receive updates

Related Posts

Actionbar Appbar Toolbar en Android (I)Interfaz de usuario en Android CardViewControles de seleccioacuten (V) RecyclerViewEstructura de un proyecto Android (Android Studio)Entorno de desarrollo Android (Android Studio)

Android Studio aplicacioacuten baacutesicos conceptos curso android ejemplo primera sencillo

29 Responses to Desarrollando una aplicacioacuten Android sencilla (Android Studio)

Carlos 20012015 at 212

Hola una consultaen el metodo SaludoActivity de la clase SaludoActivityjava cuando declaro lo siguiente

private TextView txtSaludo

me muestra en color violeta esa variable y con el msj ldquoField can be converted to a local variablerdquoy luego en el mismo metodo y en la siguiente linea

txtSaludo = (TextView)findViewById(RidTxtSaludo)

me marca la TxtSaludo en rojo con el msj ldquocannot resolve the symbol lsquoTxtSaludorsquo rdquocomo lo soluciono y porque paso eso

Kazama 20012015 at 523

Excelente tutorial hasta aca todo bien conmigo solo q tuve q agregar una libreriaimport androidviewViewen el MainActivity

y me corrio excelente otro comentario es que tuve problemas con HAXM pero ya lo resolvi y tambien con correrla desde mi movil (Samsung GTshyS6010)conectado a USB por modo depuracion pero al final logre solucionar eso tambien

seguire por aca leyendo y dejando mis comentarios de antemano Mil gracias

Francisco 24012015 at 507

Hola muy buen tutorial esta explicado exelentementehellip

Tengo una duda no puedo ejecutar el emulador no puedo instalarlo no es compatible me dice Tengo un procesador amd iquestse podraacute instalar

Joel 24012015 at 1718

Excelente tutorial he realizado mi primer ejemplo en Android gracias a este magnifico tutorial detallado magnifcamente

Tuve ciertos inconvenientes que los resolvi con mucha perseverancia y lectura y que me ayudo a conocer mejor el lenguaje

Uno de los temas que mas tuve problemas fue con la constante ldquoRrdquo que el sistema no la veia

Lo recomiendo muy bueno

javier 27012015 at 150

A mi me estaacute pasando que siguiendo el tutorial no consigo que la Ridhelliphellip me aparezca en negro todo el rato la R la tengo en rojo y pone elsiguiente texto situaacutendome encimaCannot resolve symbol lsquoRrsquo

Podriacuteais indicarme coacutemo solucionarlo No seacute queacute estoy haciendo malhellip

Mil gracias de antemano

Saludos

Oscar 29012015 at 2237

Hola no entiendo que siginifca el parametro v en public void onClick(View v)

Rodrigo 31012015 at 1943

Veniacuteas explicando muy bien hasta que derrapaste como un campeoacuten en

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Siendo nuevo hasta ahiacute entendiacute perfectamente de ahiacute te olvidaste de explicar bien donde copiar cada uno de los coacutedigos que vas dictando Al principio loexplicabas muy bien despueacutes te fuiste al carajo

admin 31012015 at 2209

Me alegra recibir criacuteticas tan constructivas Al final de cada artiacuteculo teneacuteis el enlace (GitHub) al coacutedigo completo del ejemplo descrito que

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 9: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Carlos 20012015 at 212

Hola una consultaen el metodo SaludoActivity de la clase SaludoActivityjava cuando declaro lo siguiente

private TextView txtSaludo

me muestra en color violeta esa variable y con el msj ldquoField can be converted to a local variablerdquoy luego en el mismo metodo y en la siguiente linea

txtSaludo = (TextView)findViewById(RidTxtSaludo)

me marca la TxtSaludo en rojo con el msj ldquocannot resolve the symbol lsquoTxtSaludorsquo rdquocomo lo soluciono y porque paso eso

Kazama 20012015 at 523

Excelente tutorial hasta aca todo bien conmigo solo q tuve q agregar una libreriaimport androidviewViewen el MainActivity

y me corrio excelente otro comentario es que tuve problemas con HAXM pero ya lo resolvi y tambien con correrla desde mi movil (Samsung GTshyS6010)conectado a USB por modo depuracion pero al final logre solucionar eso tambien

seguire por aca leyendo y dejando mis comentarios de antemano Mil gracias

Francisco 24012015 at 507

Hola muy buen tutorial esta explicado exelentementehellip

Tengo una duda no puedo ejecutar el emulador no puedo instalarlo no es compatible me dice Tengo un procesador amd iquestse podraacute instalar

Joel 24012015 at 1718

Excelente tutorial he realizado mi primer ejemplo en Android gracias a este magnifico tutorial detallado magnifcamente

Tuve ciertos inconvenientes que los resolvi con mucha perseverancia y lectura y que me ayudo a conocer mejor el lenguaje

Uno de los temas que mas tuve problemas fue con la constante ldquoRrdquo que el sistema no la veia

Lo recomiendo muy bueno

javier 27012015 at 150

A mi me estaacute pasando que siguiendo el tutorial no consigo que la Ridhelliphellip me aparezca en negro todo el rato la R la tengo en rojo y pone elsiguiente texto situaacutendome encimaCannot resolve symbol lsquoRrsquo

Podriacuteais indicarme coacutemo solucionarlo No seacute queacute estoy haciendo malhellip

Mil gracias de antemano

Saludos

Oscar 29012015 at 2237

Hola no entiendo que siginifca el parametro v en public void onClick(View v)

Rodrigo 31012015 at 1943

Veniacuteas explicando muy bien hasta que derrapaste como un campeoacuten en

Por su parte si revisamos ahora el coacutedigo de la clase java SaludoActivity veremos que es anaacutelogo a la actividad principal

Siendo nuevo hasta ahiacute entendiacute perfectamente de ahiacute te olvidaste de explicar bien donde copiar cada uno de los coacutedigos que vas dictando Al principio loexplicabas muy bien despueacutes te fuiste al carajo

admin 31012015 at 2209

Me alegra recibir criacuteticas tan constructivas Al final de cada artiacuteculo teneacuteis el enlace (GitHub) al coacutedigo completo del ejemplo descrito que

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 10: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

deberiacutea usarse siempre como referencia complementaria al contenido del curso

Hector 02022015 at 001

Buenas noches

iquestMe pueden ayudar me estaacute dando error al ejecutar que dice

error package view does not exist en el mainactivity

Hector 02022015 at 017

Hola de nuevo

Para solucionarlo he depurado y pulsado en importar la clase por favor iquestme pueden explicar por queacute se solucionoacute asiacute

Muchas gracias

Lupe 11022015 at 1802

Bueniacutesimo gracias

alejandro 22022015 at 1801

Excelente material estaba esperando que empieces a utilizar android studio en tus tutoriales espero que sigas sacando mas ya que me son demucha ayuda gracias por tu trabajo

Alex 23022015 at 236

Hola una pequentildea pregunta Tu blog lo estoy usando solo como referencia y refuerzo de un tuto que conseguiacute pero en el otro tuto se crea elevento onClick en el xml de la pantalla dentro de Buttonhellip Algo asiltButtonhelliphelliphellipandroidonClick=hellipY despues en el java se crea un public void que contiene todas las acciones a realizar por el evento iquestCual forma es la mejor

Jesus 23022015 at 1224

Excelente Muchas gracias

Ulises 04032015 at 1903

Carlos de casualidad ya modificaste el archivo activity_saludoxml ya que posiblemente sea por eso

Jimmy 14032015 at 622

Genial Por fin algo dirente al Hola Mundo Saludos

Omar Espinel 18032015 at 2332

Falta adicionar

import androidviewView

Carlos Loacutepez 19032015 at 410

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 11: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

julio 19032015 at 1925

en ningun momento dijiste de que forma se solucionaba el problema del androidtext=rdquostringnombrerdquo gt asi como tambien elandroidtext=rdquostringaceptarrdquo gt

si me puedes ayudar por favor

julio 19032015 at 1925

por cierto no lo dije pero muy buen aporte

Carlos Loacutepez 25032015 at 2059

Tengo un pequentildeo problema al ejecutar el apk en el dispositivo ya que me genera el siguiente error de anaacutelisis Se ha producido un problemaal analizar el paquete Ya trate de modificar algunos paraacutemetros y verifique que estuviese instalado el Android 22 (API 8) pero me sigue generando elmismo error Pueden por favor ayudarme con esto se los agradezco de antemano

Saludoshellip

Ulises 30032015 at 801

Hola en mi proyecto no existe la clase R por lo que todas las referencias a ella me las marca en error (color rojo) seguiacute todo bien que ocurre

Miguel 30032015 at 1406

Para los que tienen el siguiente errorhellip

emulator ERROR x86 emulation currently requires hardware accelerationPlease ensure Intel HAXM is properly installed and usableCPU acceleration status HAX kernel module is not installed

helliptuve el mismo problema Y leyendo en otros sitios por fin encontreacute una solucioacutenDescargar e instalar Genymotion compatible con Andorid Studio Cuando te lo instalas te dice que si quieres tambieacuten VirtualBox de Oracle el cualtambieacuten teneacuteis que aceptar que es el q se encarga de emular el dispositivoUna vez instalado os vais a Andorid Studio File Setting Plugins Browse Repositories Genymotion Y se os crearaacute un icono al lado del de SDKManager

Con Genymotion teneacuteis que crearos una cuenta (es gratuita) Este programa se encarga de descargar el dispositivo que queremos emular Y el VirtualBoxel encargado de emularlo

En el propio propio Geny dais a add y seleccionaacuteis el dispositivo y lo descargaacuteis

Un a vez hecho eso en Android Studio dais al icono de Geny y seleccionaacuteis el dispositivo y ldquoStartrdquo

Y ya estaacute Run app y funciona perfectamente

Ahuitzol 14042015 at 2315

Excelente tutorial sencillo de seguir y entender Muchas gracias

JC 18042015 at 056

Hola Julio para solucionar lo de stringnombre y stringaceptar solo agrega en srcmainresvaluesstringsxml

Escribe tu nombreAceptar

Saludos

LUIS EDUARDO RAMIREZ 18042015 at 535

Les felicito de verdad gracias por tomarse el tiempo y dedicacion de crear tutoriales como este y compartir el conocimiento que para muchos delos lectores es de importantisima relevancia pd me concentro mas cuando leo que al ver videos

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 12: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

Deja un comentario

Name (required)

Email (will not be published) (required)

Website

SUBMIT COMMENT

Publicidad

Licencia del Blog

copy Salvador Goacutemez Oliver Todos los derechos reservados

Queda prohibida la reproduccioacuten total o parcial de los contenidos de este blog asiacute como su uso y difusioacuten sin el consentimiento previo de su autor

Por favor respeta los derechos de autor Si quieres emplear alguno de los textos o imaacutegenes de este blog puedes solicitarlo por correo electroacutenico a la direccioacutenindicada en la seccioacuten de contacto

Publicidad

Archivo

Archivo Elegir mes

Categoriacuteas

Categoriacuteas Elegir categoriacutea

Etiquetas

NET actualizacioacuten ajedrez antlr base de datos blog C C++ compiladores controles curso curso android descargas

documentacioacuten DOM ebook Eclipse FKScript google gratis herramienta IA IDE instalacioacuten java JRtfTree libreriacutea libro manualesmapas Mono maacutequinas virtuales NChess novedades NRtfTree nueva open source pdf plugin programacioacuten RTF SAX SQlitetutoriales web

Enlaces NET

el Guille ndash La Web de Visual Basic C NET y maacuteshellip

Enlaces Android

TrackbacksPingbacks

Desarrollando una aplicacioacuten Android sencilla (Eclipse) | sgolivernet blog shy 16012015[hellip] Android Studio como nueva herramienta oficial de desarrollo para Android Te aconsejo que leas el nuevo capiacutetulo dedicado a la creacioacuten de una aplicacioacutensencilla en Android [hellip]Interfaz de usuario en Android Layouts | sgolivernet blog shy 17012015[hellip] el artiacuteculo anterior del curso donde desarrollamos una sencilla aplicacioacuten Android desde cero ya hicimos algunos [hellip]

Dante 05052015 at 2215

Excelente tutorial al principio creiacute que no lograriacutea hacerlo pero creo que todo esta muy bien explicado y lo logre gracias por tus conocimientoscontinuare hasta conseguir apps mas complejas y uacutetiles

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode

Page 13: 4. Desarrollando una aplicación Android sencilla (Android Studio) _ sgoliver.pdf

copy 2015 sgolivernet blog All Rights Reserved

Powered by WordPress Designed by

AndDevorg [Ingleacutes]

Androcode