Android Cero; Programación android desde cero en la nueva plataforma de desarrollo Android Studio. Tutoriales sobre instalación, configuración, programación. Todo de una forma sencilla y en español.
Tabla comparativa de las diferencias entre los gráficos 2D y los gráficos 3D.
Gráficos 2D
2D = dos dimesiones. (ejes).
Objeto 2D imágenes planas que carecen de profundidad y sólo puede moverse verticalmente ( eje y) u horizontal (eje x ).
Ejemplos de figuras en 2D: cuadrado, triángulo, círculo.
La fotografía o el dibujo de un auto suele ser bidimensional; porque por medio del dibujo solamente se puede ver y medir la longitud y la anchura; pero no se puede conocer su profundidad.
Ventajas:
Imagenes limpias y con limites establecidos, más fáciles de manipular.
Permiten el uso de gráficos vectoriales.
Pueden ser percibidos como 3D con sombra e iluminiación.
Desventajas:
El parecido de los gráficos 2D a la realidad es muy pobre.
Gráficos 3D
3D = tres dimesiones (ejes).
Objeto 3D objeto con profundidad se mueven en tres direcciones, vertical (eje y) , horizontal (eje x ) y hacia adelante o hacia atrás (profundidad en el eje z.)
Ejemplos de figuras en 3D: cilindro, esfera, cubo, pirámide.
Los objetos que vemos en nuestra realidad son tridimensionales; porque podemos medir cada una de las tres dimensiones antes mencionadas.
Ventajas:
Son apreciables desde varias perspectivas.
Pueden resultar más inmersivos.
Permite más efectos.
Desventajas:
Todavía no se ven tan reales.
Los equipos para manipularlos necesitan mayores capacidades, de proceso.
Pueden resultar confusos, para determinado publico.
La referencia de la información fue obtenida de los siguientes enlaces, la importancia o prioridad de las diferencias pueden variar y pueden existir muchas otras, pero estas son algunas que fueron funcionales para mi, para más información por favor visita los enlaces.
Además recuerda si deseas utilizar esta imagen a en tu web hacer referencia del origen Android Cero.
Convertir Array String a ArrayList, como convertir un Arreglo String a un ArrayList, esto es útil por ejemplo para llenar un Spinner (Ese fue el uso que yo le di).
Bien el código es el siguiente:
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
public class StringArrayTest
{
public static void main(String[] args)
{
String[] words = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"};
List miLista = Arrays.asList(words);
for (String e : miLista )
{
System.out.println(e);
}
}
}
Ahora bien para usarlo en una actividad de Android lo que se debe usar principalmente son las siguientes lineas:
String[] words = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"};
List miLista = Arrays.asList(words);
Lo que es el arreglo String y el arrayList, importante recordar que para hacer uso de eso es necesario importar las librerías.
Una forma muy sencilla compartir contenido texto plano a otra aplicación Android es ACTION_SEND, el código JAVA para implementar este método es el siguiente:
Intent sendText = new Intent();
sendText.setAction(Intent.ACTION_SEND);
sendText.putExtra(Intent.EXTRA_TEXT, "Texto entre comillas o String a enviar");
sendText.setType("text/plain");
startActivity(sendText);
Compartir texto plano entre aplicaciones permite, compartir mensajes, enlaces URL, cualquier tipo de clave alfanumérica.
Para implementar el código anterior solo hace falta incluirlo dentro del evento donde se quiere ejecutar, por ejemplo dentro del método onClick de un botón, etc.
Para más información visita click aquí.
El resultado es la siguiente imagen según aquellas aplicaciones que tengamos instaldas ennuestro dispositivo así como aquellas que puedan recibir contenido.
En este ejemplo les mostraré como usar un elemento ScrollView en Android, este elemento permite presentar contenido mayor al tamaño de nuestra pantalla. Cuando el contenido supera el tamaño aparece automática el ScrollView (cuando está implementado). La práctica una presenta la tabla de 8 por lo que se necesita desplazar para ver todos los resultados obtenidos desde el código Java click aquí.En este ejemplo mostraré como poner más elementos XML en la pantalla para ver el funcionamiento del ScrollView, la práctica será con botones pero pueden incluirse otros elementos como widgets.
Los pasos son muy sencillos, después de crear el proyecto vamos a insertar el es Scrollview después un Linearlayout con orientación vertical y dentro del Layout algunos botones, lo suficientes para llenar la pantalla y así poder desplazarnos.
La interfaz se ve de la siguiente forma.
Interfaz ScrollView XML
Y el resultado es el siguiente
ScrollView XML
Código XML como implementar un ScrollView
En este ejemplo los botones no tienen el atributo ID pero al querer vincularlos o asociarlos con los objectos en Java será necesario incluir el atributo ID.
En este ejemplo les mostraré como usar un elemento ScrollView en Android, este elemento permite presentar contenido mayor al tamaño de nuestra pantalla. Cuando el contenido supera el tamaño aparece automática el ScrollView (cuando está implementado).
El ejemplo usará una TextView donde se muestre la tabla de multiplicar del número 8 hasta el 20, de esta forma para iniciar también de forma básica con el uso del ciclo for.
Lo que vamos a hacer será:
Crear en nuevo proyecto Android.
Insertar los elementos XML
Asociar los elementos XML con sus objetos en Java e implementar el método OnClickListener en el botón.
Insertar un código del botón "Generar" (Generará la tabla al ser pulsado).
1 Comenzar creando el nuevo proyecto para Android click Aquí. 2 Insertar los elementos XML al Layout de nuestra aplicación, en mi caso usaré un botón para mostrar la acción. La interfaz queda como la siguiente:
ScrollView elemento XML
El código XML:
Para realizar la asociación de los elementos XML asignamos los ID a los elementos TextView y Button.
Importante recuerda que ScrollView solo puede tener un elemento hijo (child), se recomienda el uso de un Layout con orienteación vertical, si necesitas el desplazamiento horizontal deberás utilizar HorizontalScrollView. 3 Asociar los elementos XML con sus objectos en Java y activar en el botón el método onClickListener.
4 Insertar un código del botón "Generar" Por último necesitamos la lógica del programa que se ejecutará al pulsar el botón.
El código Java de la tabla del 8 es la siguiente:
String tabla=""; //Declarar la variablee String para guardar los resultados
Toast.makeText(ZASApp4MainActivity.this, "Generando tabla del 8", Toast.LENGTH_SHORT).show();
//Se implementa un mensaje toast
for (int i = 1; i < 21; i++){
// eL ciclo se repetira 20 veces
//cada vez que se repite el ciclo se agrega al string lo que esta en
// comillas al mismo tiempo que se realiza la operacion
tabla+="8 X "+i+" = "+8*i+"\n";
}
//Despues de tener los datos en la variable String tabla se muestra el
//resultado en el TextView
tv1.setText(tabla);
Si deseas ver la práctica sobre los mensajes emergentes click aquí. Por último solo tenemos que ejecutar la aplicación, al pulsar el botón "generar" podremos ver como se muestra la tabla del 8, la cual no cabe en la pantalla pero podemos desplazarnos por ella.
En la primer imagen se muestra la aplicación recientemente ejecutada, La segunda imagen muestra el botón recién pulsado. Por último la tercer imagen muestra el desplazamiento hasta la última multiplicación.
Códigos finales.
Código XML.
String.xml
ZASApp4Hello world!SettingsGenerar
Activity Código Java.
package com.example.zasapp4.zasapp4;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class ZASApp4MainActivity extends ActionBarActivity {
Button btn1;
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zasapp4_main);
btn1 = (Button)findViewById(R.id.button);
tv1 = (TextView)findViewById(R.id.textView);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String tabla=""; //Declarar la variablee String para guardar los resultados
Toast.makeText(ZASApp4MainActivity.this, "Generando tabla del 8", Toast.LENGTH_SHORT).show();
//Se implementa un mensaje toast
for (int i = 1; i < 21; i++){
// eL ciclo se repetira 20 veces
//cada vez que se repite el ciclo se agrega al string lo que esta en
// comillas al mismo tiempo que se realiza la operacion
tabla+="8 X "+i+" = "+8*i+"\n";
}
//Despues de tener los datos en la variable String tabla se muestra el
//resultado en el TextView
tv1.setText(tabla);
}
});
}
}
Es un contenedor para una jerarquía de vistas que se puede desplazar por el usuario, permitiendo que la interfaz sea más grande que la pantalla física. Un SrollView es un FrameLayout, esto significa que solo debe contener un elemento hijo (child), este elemnto hijo debe contener todos los elementos y contenido dentro del ScrollView. Normalmente es utilizado como hijo un elemento LinarLayout con orientación vertical el que contendrá a los otros elementos, por los que el usuario podrá desplazarse.
ejemplo:
Único "hijo" de ScrollView contiene botones
Jerarquía de ScrollView.
Jerarquía ScrollView
Aveces es importante conocer la jerarquía de un elemento pues sus subclases manejan muchos atributos similares.
Principales atributos de ScrollView.
Existe gran cantidad de atributos y métodos, pero estas son usadas para programación más compleja como animaciones y otro tipo de características, para hacer uso de ScrollView esencialmente solo se necesita establecer el área a usar ancho y alto y en ocasiones se utilizan los margenes tanto exteriores como interiores así mismo el color de fondo.
android:width. Permite establecer el ancho del SrollView, los valores del atributo width pueden ser unidades flotantes (decimales) seguidas de su unidad de medida ejemplo 20.4 dp, las unidades son px (pixeles), sp (escala basada en el tamaño de la fuente), dp (densidad independiente de pixeles), in (pulgadas), mm (milimetros), también se puede usar fill_parent (llenar el tamaño del padre), match_parent (llenar el resto del padre), wrap_content (ajustarse al contenido).
android:height. Permite establecer el alto del ScrollView, los valores del atributo height pueden ser unidades flotantes (decimales) seguidas de su unidad de medida ejemplo 20.4 dp, las unidades son px (pixeles), sp (escala basada en el tamaño de la fuente), dp (densidad independiente de pixeles), in (pulgadas), mm (milimetros), también se puede usar fill_parent (llenar el tamaño del padre), match_parent (llenar el resto del padre), wrap_content (ajustarse al contenido).
android:padding. Permite establecer el margen interior del Scrollview, los valores del atributo padding son px (pixeles), estas medidas aplican para todos los bordes del ScrollView, también existe el atributo independiente para cada borde.
android:background.Permite establecer el fondo del Scrollview, los valores del atributo background son "#rgb", "#argb", "#rrggbb", o "#aarrggbb", los valores son colores rgb o alfargb ambos también en formato hexadecimal. (El forma argb permite aplicar transparencias en los colores), ejemplo: android:background="#fff1ff1f"
Para ver más valores visita la fuente original: http://developer.android.com/reference/android/widget/ScrollView.html
Un Toast (notificación emergente), un mensaje que aparece en la pantalla pero sin bloquear otras funciones de la aplicación. esto quiere decir que la actividad permanece visible y activa. El mensaje o notificación no acepta interacción lo que significa que al tocarla no sucede nada.Un mensaje Toast aparece, queda visible durante un tiempo previamente establecido después desaparece. Los Toast son muy útiles para mandar mensajes al usuario con efectos integrados de forma general en el sistema.
Este tipo de mensajes puede mostrar simplemente texto, también puede incluir imágenes (iconos) o texto con imágenes (iconos), cada programador puede personalizar su mensaje emergente según sus necesidades. Existe la posibilidad de crearlo como un objeto, definirlo y después asignarle los valores, de este modo se tienen ciertas ventajas de personalizar en Toast como la posición, los margenes, Pero ahora mostraré el Toast sencillo.
Para usar este widget se tiene que importar su librería con la siguiente linea.
import android.widget.Toast;
Una instancia Toast tiene tres atributos, su estructura es la siguiente.
contexto.- Activitdad de la aplicación donde se presentará el mensaje emergente toast. texto.- Variable String que contendrá el mensaje a mostrar. duracion.- Variable entera que acepta valores Toast.LENGTH_SHORT (0) o Toast..LENGHT_LONG (1).
Para lanzar el mensaje emergente solo tenemos que insertarlo en la parte de nuestra actividad donde se ejecutará, importante para ejecutar un mensaje Toast debe estar dentro del código de una actividad.
Mi aplicación realiza la siguiente actividad, al pulsar un botón que dice "Generar" muestra un Toast (mensaje emergente) que dice "Pulsaste el boton". El resultado es el de la imagen.
Espero que este post haya sido de ayuda, todavía seguimos con cosas simples para la programación en Android desde cero recuerda seguirnos en las redes sociales para ayudar a crecer este proyecto. Escribe tus dudas y comentarios.
Que tal? el día de hoy les mostraré como capturar el texto de un EditText también conocido en Android como campo de texto, tal vez se estén haciendo la pregunta para que sirve un EditText, bien un EditText es un elemento muy importante en Android ya que nos permite la interacción con el usuario en la forma de recibir datos del usuario, por ejemplo se puede usar para recibir:
Nombres, Apellidos.
Edades
Números telefónicos.
Valores a operar (valor1 y valor2 que pueden ser sumados, restados, multiplicados, etc).
Para saber más acerca del EditText click aquí. Bien lo que haré el día de hoy es una aplicación en la cual ingresemos nuestro nombre o cualquier dato en un TextView y al pulsar un botón nos muestre Hola y nuestro nombre o el dato ingresado. Pasos:
Crear nuevo proyecto o editar existente (yo crearé uno).
Insertar los tres elementos a utilizar en el layout EditText, Botón (Button), TextView.
Asociar los elementos XML con sus objetos en Java.
Escribir el código, para obtener los datos del EditText y mostrar en el TextView "Hola" seguido de los datos ingresados en el EditText todo esto al pulsar el Botón (Button).
1 Crear el nuevo proyecto, si quieres saber como crear un nuevo proyecto en Android Studio click aquí. 2 Insertar los tres elementos en el layout.
Ahora procedemos a insertar los tres elementos que necesitaremos en el layout de la aplicación, para insertar los elementos lo pueden hacer desde la forma gráfica o directamente mediante código XML. Lo que haré será asignar su correspondiente ID a cada elemento XML y escribir los textos que aparecerán en el botón y en el campo de text, para el campo de texto usare el atributo android:hint.
La interfaz gráfica hasta el momento se ve así. Si no sabes cambiar el texto de los elementos View click aquí.
Elementos EditText, Button, TextView
Y el código XML está así.
Y mi archivo de strings así.
ZASApp3Hello world!SettingsNombreAcceder
3 Asociar los elementos XML con sus objetos en JAVA.
Ahora vamos a la Actividad (Activity) de nuestra aplicación creamos los objetos correspondientes en JAVA y los asociamos a los elementos XML mediante el método findViewById() esto es muy sencillo pero si necesitas ayuda click aquí. El código Java hasta el momento es el siguiente.
package com.example.zasapp3.zasapp3;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class ZASApp3MainActivity extends ActionBarActivity {
EditText et1; //Declaracion de un objeto EditText llamado et1
Button btn1; //Declaracion de un objeto Button llamado btn1
TextView tv1; //Declaracion de un objeto TextView llamado tv1
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zasapp3_main);
/* Asociacion de los objetos en Java con sus correspondientes
elementos XML mediante el metodo findViewById
*/
et1 = (EditText)findViewById(R.id.editText1);
btn1 = (Button)findViewById(R.id.btn1);
tv1 = (TextView)findViewById(R.id.textView1);
}
}
4 Obtener datos o leer datos de EditText.
Primero ponemos nuestro objeto btn1 en modo escucha con el método setOnClickListener() dentro de este método comenzamos a escribir lo que queremos que pase, si quires ver un tutorial de método onClick click aquí.
Lo primero es obtener el texto del campo de texto o EditText y guardar el texto en una variable String, esto lo haremos con el metodo getText() y para convertirlo a String usaremos el método toString().
Por último damos escribimos la linea para mostrar el texto en el TextView para ello se usara el método setText(String). Dentro del parentesis debe ir un dato tipo cadena para que muestre la palabra hola sería lo siguiente setText("Hola") ahora solo concatenamos el dato que obtuvimos i se guardo en la variable string dato y quedaría de la siguiente forma. tv1.settext("Hola "+dato);
El código Java es el siguiente.
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String dato = et1.getText().toString();
/* El metodo getText() obtiene el dato escrito con el metodo toString()
se convierte a String para poder manipularlo como tal, por ultimo
se muestra en el textView con el metodo .setText()
*/
tv1.setText("Hola " +dato);
}
});
Importante este código va dentro de onCreate. Al hacer esto podemos correr nuestra aplicación.
El código XML no tiene ninguna modificación y el código java final es el siguiente.
package com.example.zasapp3.zasapp3;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class ZASApp3MainActivity extends ActionBarActivity {
EditText et1; //Declaracion de un objeto EditText llamado et1
Button btn1; //Declaracion de un objeto Button llamado btn1
TextView tv1; //Declaracion de un objeto TextView llamado tv1
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zasapp3_main);
/* Asociacion de los objetos en Java con sus correspondientes
elementos XML mediante el metodo findViewById
*/
et1 = (EditText)findViewById(R.id.editText1);
btn1 = (Button)findViewById(R.id.btn1);
tv1 = (TextView)findViewById(R.id.textView1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String dato = et1.getText().toString();
/* El metodo getText() obtiene el dato escrito con el metodo toString()
se convierte a String para poder manipularlo como tal, por ultimo
se muestra en el textView con el metodo .setText()
*/
tv1.setText("Hola " +dato);
}
});
}
}
Esto es todo ahora correr y probar la aplicación podremos, el resultado será el siguiente.
En la primer imagen se muestra, la pantalla al iniciar la aplicación, luego se ingresa el dato (nombre)
y se pulsa el botón para obtener los valores escritos en el campo de texto (EditText) y muestra Hola más el valor. Y así es como se obtienen valores de los EditText o campos de texto, espero que les haya sido de utilidad este tutorial, no olvides compartir el post y seguirnos en las redes sociales, hasta la próxima.
Es un campo de texto (Text field) editor de texto plano. Un campo de texto permite que al usuario escribir texto en la aplicación. Puede ser de una sola línea o de múltiples líneas. Si toca un campo de texto muestra automáticamente el teclado. Además de escribir, los campos de texto permiten una variedad de otras actividades , como la selección de texto (cortar, copiar , pegar) y datos de consulta a través de auto-realización .
Jerarquía de EditText.
Jerarquía EditText
Aveces es importante conocer la jerarquía de un elemento pues sus subclases manejan muchos atributos similares.
Otros de los atributos básicos se pueden ver en TextView.
android:width. Permite establecer el ancho del TextView, los valores del atributo width pueden ser unidades flotantes (decimales) seguidas de su unidad de medida ejemplo 20.4 dp, las unidades son px (pixeles), sp (escala basada en el tamaño de la fuente), dp (densidad independiente de pixeles), in (pulgadas), mm (milimetros), también se puede usar fill_parent (llenar el tamaño del padre), match_parent (llenar el resto del padre), wrap_content (ajustarse al contenido).
android:height. Permite establecer el alto del TextView, los valores del atributo height pueden ser unidades flotantes (decimales) seguidas de su unidad de medida ejemplo 20.4 dp, las unidades son px (pixeles), sp (escala basada en el tamaño de la fuente), dp (densidad independiente de pixeles), in (pulgadas), mm (milimetros), también se puede usar fill_parent (llenar el tamaño del padre), match_parent (llenar el resto del padre), wrap_content (ajustarse al contenido).
android:hint.Indica el texto a mostrar en el la vista (EditText). mientras el campo se encuentra vacío, ejemplo: un campo que indique "nombre" y al comenzar a escribir el valor "nombre" desaparecerá. El valor de este atributo debe ser de tipo String. cuando lo textos son estáticos (predefinidos) la variable String a mostrar debe hacer referencia a res/strings, aquí existe la posibilidad de escribir lo que mostrará la aplicación en diferentes idiomas según la configuración del sistema, esto para internacionalizar la aplicación.
Suele ser más usado el atributo hint que el atributo text porque hint desaparece cuando se comienza a escribir algo dentro del campo de texto.
android:inputType. Permite establecer el tipo de datos o valores que va a admitir el campo de texto, entre los valores del del campo de texto están números enteros, números decimales, fechas, contraseñas, direcciones de correo electrónico, direcciones postales, números de teléfono, etc.
Sirve para optimizar una aplicación ayudando a decidir el método y tipo de datos que se va a introducir, pues despliega el tipo de teclado necesario para facilitar la usabilidad. Puede ser uno o más tipos de datos separados por el operador "|" ("barra") algunos de los valores son: text, textPassword, date, phone, number.
android:id. Proporciona un nombre identificador para este elemento vista, para luego ser asociado con su correspondiente y en Java y poder ser manipulado desde la Activity. La recuperación o asociación de componentes se realiza mediante el método findViewById(), para ver un tutorial sobre como asociar componentes click aquí.
TextView es una clase pública heredada de la clase View.
Este elemento (widget) Permite mostrar texto al usuario mediante la interfaz gráfica, un TextView es un editor de texto completo, sin embargo la clase básica está configurado para no permitir la edición.
Jerarquía de TextView.
Jerarquía TextView
Aveces es importante conocer la jerarquía de un elemento pues sus subclases manejan muchos atributos similares.
android:width. Permite establecer el ancho del TextView, los valores del atributo width pueden ser unidades flotantes (decimales) seguidas de su unidad de medida ejemplo 20.4 dp, las unidades son px (pixeles), sp (escala basada en el tamaño de la fuente), dp (densidad independiente de pixeles), in (pulgadas), mm (milimetros), también se puede usar fill_parent (llenar el tamaño del padre), match_parent (llenar el resto del padre), wrap_content (ajustarse al contenido).
android:height. Permite establecer el alto del TextView, los valores del atributo height pueden ser unidades flotantes (decimales) seguidas de su unidad de medida ejemplo 20.4 dp, las unidades son px (pixeles), sp (escala basada en el tamaño de la fuente), dp (densidad independiente de pixeles), in (pulgadas), mm (milimetros), también se puede usar fill_parent (llenar el tamaño del padre), match_parent (llenar el resto del padre), wrap_content (ajustarse al contenido).
android:gravity. Especifica la posición relativa del texto que contiene (cuando el texto es más chico que el TextView). Puede tomar uno, o varios valores separados por el operador "|" ("barra") algunos de los valores son: top, buttom, left, right, center.
android:textSize. Especifica el tamaño del texto que tendrá al mostrar un mensaje, los valores del atributo textSize pueden ser unidades flotantes (decimales) seguidas de su unidad de medida ejemplo 20.4 sp, las unidades son px (pixeles), sp (escala basada en el tamaño de la fuente), dp (densidad independiente de pixeles), in (pulgadas), mm (milimetros),
se recomienda usar la medida sp (escala basada en el tamaño de la fuente).
android:text. Indica el texto a mostrar en el TextView. el valor de este atributo debe ser de tipo String. cuando lo textos son estáticos (predefinidos) la variable String a mostrar debe hacer referencia a res/strings, aquí existe la posibilidad de escribir lo que mostrará la aplicación en diferentes idiomas según la configuración del sistema, esto para internacionalizar la aplicación.
android:id. Proporciona un nombre identificador para este elemento vista, para luego ser asociado con su correspondiente y en Java y poder ser manipulado desde la Activity. La recuperación o asociación de componentes se realiza mediante el método findViewById(), para ver un tutorial sobre como asociar componentes click aquí.
Estos son los atributos más importantes para comenzar a mostrar textos en los TextView de nuestra aplicación, ya sean indicación o resultados de procesos, para saber más acerca de otros atributos recomiendo seguir la fuente de la información que se encuentra al final del post.
¿Cómo permitir la selección del texto en un TextView?
Un elemento TextView puede permitir a los usuarios copiar parte o la totalidad del valor del TextView para pegarlo en otro lugar, es necesario establecer en el atributo XML android: textIsSelectable a "true" o llame setTextIsSelectable (verdadero). La bandera textIsSelectable permite a los usuarios hacer gestos de selección en el TextView , que a su vez desencadena incorporados controles de copiar / pegar del sistema.
Hoy mostraré como capturar el click en un botón o vista en Android (TextView, ImageView, etc) todo esto mediante el método de escucha de evento OnClick.
Este métodos nos permite capturar los clicks en determinadas vistas comúnmente botones, para ejecutar ciertas partes de nuestro código fuente y de esta forma realizar las acciones que queramos.
La práctica de hoy será muy simple un botón contador de clicks en Android.
Lo que haremos es agregar el botón el botón en nuestro layout principal y hacer la asociación correspondiente con su variable en Java. Para aquellos que no saben como hacer dicha asociación de elementos XML a variables en Java click aquí.
Códigos actuales.
Código XML
Código JAVA
package com.example.zasapp2.zasapp2;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.widget.Button;
public class ZASApp2MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zasapp2_main);
Button boton1 = (Button)findViewById(R.id.button1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_zasapp2_main, menu);
return true;
}
}
El código actual solo asocia el elemento XML a la variable correspondiente en java, en este caso un boton llamado boton1.
Implementación de onClick
Lo siguiente es implementar el evento setOnClickListener en el botón esto para que dicho botón escuche los clicks que recibe. Esto se hace con el siguiente código.
A los IDE como Andriod Studio o Eclipse facilitan mucho la escritura de este tipo de métodos por el auto-completado, ahora cada vez que el botón sea pulsado este método lo detectará y ejecutará todo el código que este escrito dentro de este, la parte donde escribiremos las acciones a realizar es dentro de las llaves del método onClick que contiene un atributo View llamado view(el nombre puede cambiar puede ser v, arg0, etc).
Bien procedemos a escribir el código contador, es algo muy simple declarar una variable entero fuera del método onClick para que no se reinicie cada vez que se pulsa el botón y dentro del método onClick un autoincremental en 1, también necesitaremos mostrar el resultado en el botón con el método setText(variable); si quieres ver el pequeño tutorial sobre setText click aquí.
Código final JAVA
package com.example.zasapp2.zasapp2;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class ZASApp2MainActivity extends ActionBarActivity {
int clicks = 0; /*Declarado como variable "global" dentro de Activity
para ser usada en el metodo onClick esto evitara que
la variable se vuelva a cero cada vez que se da click
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zasapp2_main);
final Button boton1 = (Button)findViewById(R.id.button1);
boton1.setText("No has pulsado el boton");
boton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clicks++;
boton1.setText("Has pulsado el boton "+clicks+" veces");
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_zasapp2_main, menu);
return true;
}
}
El botón mostrará inicialmente un mensaje "No has pulsado el botón" pero al pulsar el botón ejecutará el código dentro de onClick y el mensaje cambiará por "Has pulsado el botón N veces".
Los resultados:
A partir de esto se pueden realizar gran cantidad de tareas, al pulsar un botón o elemento en el Layout. No olvides dejar tus dudas y/o comentarios, si te ha gustado y/o servido este tutorial recuerda seguirnos en las redes sociales y compratir con tus amigos.
En tes breve tutorial les voy a mostrar como cambiar, en algún caso escribir o modificar el texto desde el Activity, o en otras palabras cambiar el texto ya sea de un TextView un Button, etc. Desde Java.
Bien antes que nada necesitaremos un botón en el XML asociado con su estancia variable en Jav mediante un ID para aquellos que no vieron el tutorial pasado y quieren aprender a asociar elementos XML con sus variables correspondientes en Java les dejo este enlace click aquí. Igual abajo dejaré el código hasta el momento.
Esto es muy sencillo el código actual es el siguiente:
Código XML
Código JAVA
package com.example.zasapp2.zasapp2;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.widget.Button;
public class ZASApp2MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zasapp2_main);
Button boton1 = (Button)findViewById(R.id.button1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_zasapp2_main, menu);
return true;
}
}
Entonces el resultado de esto es un botón centrado con el texto New Button que aparece por default cuando se inserta este objecto en la forma gráfica del XML. Aquí la imagen.
Bien ahora en el desde el código Java hacemos uso de un método que se deriava de la clase View
SetText
boton1.setText("No has pulsado el boton");
Por supuesto esto lo haremos luego de haber declarado y asociado nuestro botón dentro de OnCreate, con este método es como se modificará el texto de un TextView, Button, EditText, etc,
Los códigos completos son los siguientes
Código XML
Código JAVA
package com.example.zasapp2.zasapp2;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.widget.Button;
public class ZASApp2MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zasapp2_main);
Button boton1 = (Button)findViewById(R.id.button1);
boton1.setText("No has pulsado el boton");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_zasapp2_main, menu);
return true;
}
}
Como se puede observar el código XML es exactamente el mismo, pero ahora el resultado y lo que muestra el botón es un texto diferente en este caso "No has pulsado el boton".
Para cambiar el texto de un boton un TextView o cualquier otro elemento derivado de la clase View desde la Activity se puede hacer uso de SetText();
Por el momento al pulsar el botón nuestra aplicación no realizará ninguna actividad, para escuchar los click usaremos el evento OnClick que se muestra en el siguiente tutorial boton contador de clicks.
Recuerda dejar tus dudas o comentarios, si de ha gustado o servido el tutorial nos gustaría que compartieras y no siguieras en las redes sociales.
Asociar los componentes XML con las variables JAVA es algo muy útil a la hora de programar las aplicaciones móviles, pues esto nos permite modificar los componentes en nuestra interfaz de usuario mediante acciones o procesos realizados en JAVA, en XML una vez ejecutada la aplicación no se pueden modificar los valores de los objetos pero en JAVA si se puede.
Para aquellos que no comprendan de forma clara a lo que me refiero pondré unos ejemplos que creo son simples:
Un solo botón que dice pulsame, y al momento de pulsarlo el texto cambia y dice Has pulsado N veces el botón.
O dos campos de texto EditText que al pulsar un botón haga la suma de los valores y lo muestre en un TextView.
Los ID son importantes pues imaginen el caso anterior dos campos de texto, pero ahora dos botones quiero que cuando se pulse uno se sumen las cantidades pero cuando se pulse el segundo se resten las cantidades, para este ejemplo se necesita saber cual botón fue pulsado y por ello es importante definir ID.
Para asociar los elementos XML a variables o entidades JAVA crearé un nuevo proyecto llamado ZASApp2, como bien sabemos crea por default un TextView que muestra el conocido Hello world! en Android, procedo a borrar el TextView (sleccionar el TextView en la interfaz gráfica y suprimir).
Realizaré la asociación de un elemento tipo botón, para hacerlo de manera gráfica se ubican en la selección de elementos yo la tengo del lado izquierdo se llama "Palette" busco el elemento Button, lo seleccionan y arrastran a la parte donde lo quieran ubicar.
Añadir elemento Button
para asignarle un ID al elemento por el momento conozco tres maneras:
Escribir el código del atributo ID en la etiqueta del elemento.
Seleccionar el elemento en la forma de gráfica y buscar el atributo ID.
Dar doble click sobre el elemento en la interfaz gráfica.
Usaré el último método, aquí también podemos cambiar el texto, el ID que asignaré será button1.
Ahora vamos a la actividad principal de nuestra aplicación, y dentro del OnCreate declaramos una estancia o variable Button (la palabra Button es una palabra reservada, como si se tratase de int o String) entonces lo declararé y para relacionar y asociar mi objeto con su ID escribo lo siguiente.
Button boton1 .- Mi variable o estancia se llama boton1 y es del tipo Button, por lo que tiene todas sus atributos y metodos.
= .- Como sabemos al usar el signo = se trata de una asignación.
(Button)findViewById(R.id.button1) .- La primera palabra entre paréntesis le indica el tipo de estancia que va a buscar, luego llamamos el método findViewById que encuentra una vista de acuerdo con el ID, y entre parentesis indicamos la ruta (R.id,button1) lo que significa Resources (Recursos) id (que se buscarán por el ID) y al final el ID que deseamos seleccionar y así es como se asocia un elemento XML con su correspondiente elemento en JAVA.
Importante para hacer la asociación debemos asegurarnos de que sea el mismo tipo de elemento o variable, un Button con Button, EditText con EditText, TextView con TextView, etc.
Aquí los código completos.
Código XML
Código JAVA
package com.example.zasapp2.zasapp2;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.widget.Button;
public class ZASApp2MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zasapp2_main);
Button boton1 = (Button)findViewById(R.id.button1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_zasapp2_main, menu);
return true;
}
}
Recuerda escribir tus dudas y comentarios espero sea de ayuda para alguno de ustedes, en los próximos tutoriales veremos el uso de OnClick para capturar eventos en la pantalla, capturar los datos de una caja de texto o EditText, así como cambiar el texto de un View desde JAVA.
Por último no olvides compartir en tus redes sociales y seguirnos en google plus, facebook y twitter, los widgets se ubican en el lado derecho, gracias.
Para el tutorial de hoy seguiremos con cosas básicas de Android para luego ir aumentando el nivel y enfocarnos en cosas un poco más complejas, como dice el titulo hoy les mostraré 4 formas de cambiar el texto en un TextView.
Esta forma sirve para cambiar el texto de aquellos elementos derivados de la clase View, como son EditText, TextView, Botones, etc.
Todavía no se usarán Ids para identificar a los objetos.
Espero ir generando y actualizando un indice donde muestre el nombre de las aplicaciones así como crear un repositorio en GitHub para quienes quieran descargar e importar los proyectos completos, desde ahorita comento no publicaré todos proyectos.
Comenzando creando un nuevo proyecto en mi caso lo nombraré ZASApp1.
Z es para que la lista de aplicaciones de mi teléfono estas se acomoden hasta el final por la letra.
AS son de Android Studio,
App1 aplicación 1 para mantener un orden en el indice de aplicaciones.
Cuando ya tengan creado el nuevo proyecto y se asegurén que la aplicación corre ya sea en su emulador o en su teléfono, y se encuentran en la ventana principal de Android Studio continuamos,
Para quienes lo necesiten aquí está como hacer lo anterior.
Aprender a crear un nuevo proyecto en Android Studio click aquí.
Cambiar el texto de TextView desde Design XML sin String forma 1.
Opinión está forma en lo particular no me gusta por los mensajes de advertencia que muestra cada vez en el código XML aunque no presentan mayor problema a mi me disgusta jaja. Pero aún así mostraré la forma.
Se ubican en el XML en la opción de diseño (Design), entonces seleccionan el TextView que muestra en este momento Hello world! en la sección de propiedades (propieties) buscamos la propiedad text y en los valores de este campo escriben lo que deseen mostrar en mi caso "Cambio desde vista Design".
Pueden correr la aplicación y ver el cambio, aunque los cambios son inmediatos en la interfaz gráfica del Android Studio
Cambio inmediato
Forma 1 en teléfono real
Cambiar el texto de TextView desde código XML sin String forma 2.
La opinión es la misma que la anterior, pues hace lo mismo pero esta vez desde el código XML.
Se ubican en el XML en la opción de código (Text), entonces seleccionan el objeto o vista con la etiqueta TextView el cual tendrá la propiedad android:text="" y entre las comillas escriben lo que quieren mostrar, mi caso será como el código a continuación.
Forma 2 en teléfono real
Cambiar el texto de TextView correctamente desde Design con String forma 3.
Opinión esta forma es un poco más compleja pero a mi forma de ver está es una de las formas correctas, no nos muestra el mensaje de advertencia que aunque no implica problemas, en lo personal cuando tengo un código con cientos de lineas a veces encontrar un problema es difícil de esta forma podemos evitar futuras confusiones.
Primero en la estructura del proyecto abrimos el archivo que contiene string en xml.
App > res > value > strings.xml.
App > res > value > strings.xml
Aquí es donde tendremos que escribir cada texto que vayamos a mostrar en nuestras vitas de formas estática. yo pondré dos nuevos textos para usar.
Texto a mostar
Está es la estructura de una variable String en XML para Android en la propiedad name entre las comillas vamos a escribir el identificador sin espacios y dentro de las etiquetas string el texto que vamos a mostrar, como en el ejemplo anterior para llamar dicho string haremos referencia con @string/texto a texto y mostrará Texto a mostrar.
strings.xml
Una vez hecho esto vamos a hacemos lo mismo que en la forma 1 pero a diferencia de escribir el texto en la propiedad text seleccionamos el valor de la propiedad text y pulsamos el botón con tres puntos.
Entonces se abrirá una ventana donde nos mostrará varios valores entre ellos los String que acabamos de crear. Seleccionamos el String mediante el identificador que nosotros asignamos y pulsamos Ok.
Resources strings
Ahora ya tenemos otro texto en el TextView desde las referencia de Strings de nuestra aplicación.
Forma 3 en teléfono real
Cambiar el texto de TextView correctamente desde código XML con String forma 4.
Como en la forma 3 ya cuando creamos nuestros String en el archivo string.xml ahora realizamos el procedimiento de la forma 2 vamos a Layout XML ubicamos la etiqueta TextView a la que deseamos cambiar el texto y en el atributo o propiedad android:text="" comenzamos escribiendo @string/ dentro de las comillas, enseguida escribimos el identificador del string que vamos a usar y Android Studio mostrará automáticamente opciones disponibles, como en la siguiente imagen. sin mostrar ninguna advertencia. Seleccionamos elstring que vayamos a mostrar y damos enter.
Autocompletado en Android Studio
Forma 4 en teléfono real
Importante: en los métodos 3 y 4 se debe crear el string con los valores que se quieren mostrar en el archivo string.xml
Esto es todo por este tutorial, espero que les sea de ayuda les puse mis comentarios sobre los métodos yo prefiero y uso el 3 y 4 son el mismo pero uno es desde el código y el otro utiliza más la parte gráfica. Estoy comenzando a implementar un JavaScript que permite como poner código Java y XML que iremos usando de esta forma para explicar más fácil, Este post se me hace algo largo pero es la forma de usar texto estáticos de diferentes maneras, cualquier duda o comentarios sobre el post, si te gustarían que fueran más cortos o así te parece bien, si tienes cualquier duda escribe tus comentarios.
Recuerda seguirnos en google+, facebook, twitter. Y compartir con tus amigos y conocidos.
En los siguientes post veremos la forma relacionar objetos XML con objetos Java.