Herramientas de usuario

Herramientas del sitio


fw:android

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
fw:android [2010/05/02 19:45]
alfred
fw:android [2020/05/09 09:25] (actual)
Línea 3: Línea 3:
  
 ===== General ===== ===== General =====
 +
 +
  
  
Línea 196: Línea 198:
   * ''​Button'':​ Corresponde a un botón.   * ''​Button'':​ Corresponde a un botón.
   * ''​ImageButton'':​ Botón con imágen. La imágen ha de estar en ''​res/​drawable-xxx''​ y para indicar cual será la que se mostrará lo haremos a partir de la propiedad ''​src'',​ indicando ''​@drawable/​nombre-de-archivo-sin-extensión''​. Por ejemplo: ''​android:​src="​@drawable/​state"''​.   * ''​ImageButton'':​ Botón con imágen. La imágen ha de estar en ''​res/​drawable-xxx''​ y para indicar cual será la que se mostrará lo haremos a partir de la propiedad ''​src'',​ indicando ''​@drawable/​nombre-de-archivo-sin-extensión''​. Por ejemplo: ''​android:​src="​@drawable/​state"''​.
 +
 +
  
 ==== Recursos ==== ==== Recursos ====
-Un recurso es la parte de la aplicación que no es código (por ejemplo imagenes, sonidos, textos...) pero que se compilan con esta. Han de guardarse en el directorio ''​res''​ de la aplicación. Cuando lo hacen se crea una clase denominada ''​R''​ que contiene los identificadores a cada uno de los recursos para poder acceder a estos desde el código, para ello en el directorio ''​res''​ se crean subdirectorios,​ como por ejemplo el ''​layout''​ y dentro de este archivos como por ejemplo el ''​main.xml'',​ que sería el layout principal. Para acceder a este layout haríamos ''​R.layout.main''​. La clase ''​R''​ la maneja automáticamente Eclipse.+Un recurso es la parte de la aplicación que no es código (por ejemplo imagenes, sonidos, textos...) pero que se compilan con esta. Han de guardarse en el directorio ''​res''​ de la aplicación. Cuando lo hacen se crea una clase denominada ''​R''​ que contiene los identificadores a cada uno de los recursos para poder acceder a estos desde el código, para ello en el directorio ''​res''​ se crean subdirectorios,​ como por ejemplo el ''​layout''​ y dentro de este archivos como por ejemplo el ''​main.xml'',​ que sería el layout principal. Para acceder a este layout haríamos ''​R.layout.main''​. La clase ''​R''​ la maneja automáticamente Eclipse. ​
 === Strings === === Strings ===
 Dentro del proyecto, en la carpeta ''​res''​ encontraremos la subcarpeta ''​values''​ con el fichero ''​string.xml''​. Este corresponde a los textos de la aplicación. Dentro del proyecto, en la carpeta ''​res''​ encontraremos la subcarpeta ''​values''​ con el fichero ''​string.xml''​. Este corresponde a los textos de la aplicación.
Línea 235: Línea 239:
 Ahora en las propiedades que acepten colores podremos asignar estos valores como ''​@color/​black'',​ por ejemplo. Ahora en las propiedades que acepten colores podremos asignar estos valores como ''​@color/​black'',​ por ejemplo.
  
- +=== Más... === 
- +  * Para acceder a los recursos desde una ''​Activity''​ utilizaremos el método ''​getResources()''​. 
- +<code java> 
- +String[] countries = getResources().getStringArray(R.array.countries_array);​ 
- +</​code>​
- +
- +
- +
- +
  
 ==== Activity ==== ==== Activity ====
Línea 290: Línea 289:
 } }
 </​code>​ </​code>​
 +
 +=== Abriendo Activities ===
 Para iniciar una ''​Activity''​ necesitaremos utilizar un objeto ''​Intent''​ y lo haremos a partir de los siguientes métodos: Para iniciar una ''​Activity''​ necesitaremos utilizar un objeto ''​Intent''​ y lo haremos a partir de los siguientes métodos:
   * ''​startActivity'':​ Inicia una nueva actividad, esta reemplazará la actual en la pila de actividades.   * ''​startActivity'':​ Inicia una nueva actividad, esta reemplazará la actual en la pila de actividades.
-  * ''​startActivityForResult'':​ Cuando queramos recoger información de la ''​Activity''​ que iniciamos, para recoger su resultado necesitaremos sobreescribir el método ''​onActivityResult''​ de la ''​Activity''​ que ejecuta este. +  * ''​startActivityForResult'':​ Cuando queramos recoger información de la ''​Activity''​ que iniciamos, para recoger su resultado necesitaremos sobreescribir el método ''​onActivityResult''​ de la ''​Activity''​ que ejecuta este. Para controlar que se ha escogido un resultado y que no se ha salido con la tecla de //atrás// podremos recoger en el primer integer el estado, si este es ''​RESULT_OK''​ es que ha salido bien.
- +
  
 +Para pasar argumentos entre objetos ''​Activity''​ utilizaremos la clase ''​android.os.Bundle'',​ en esta podemos agregar información (mediante el método ''''​) y recogerla (mediante ''''​). \\ 
 +Por ejemplo una Activity A va a abrir una Activity B, para enviarle información a esta haremos:
 +<code java>
 +Bundle b = new Bundle();
 +String strValue = "​Test";​
 +b.putString("​elements",​ strValue);
 +b.putInt("​type",​ Main.AskClient);​
 +Intent i = new Intent(this,​ OpenVideo.class);​
 +i.putExtras(b);​
 +this.startActivityForResult(i,​ 0);
 +</​code>​
 +Al crearse la Activity B lo primero que hace es mirar los datos pasados:
 +<code java>
 +this.type = this.getIntent().getExtras().getInt("​type"​);​
 +</​code>​
 +Una vez que ha hecho todo lo que tiene que hacer devuelve la información en otro ''​Bundle'':​
 +<code java>
 +Bundle bundle = new Bundle();
 +bundle.putInt("​selected",​ arg2 - 1);
 +Intent mIntent = new Intent();
 +mIntent.putExtras(bundle);​
 +setResult(RESULT_OK,​ mIntent);
 +this.finish();​
 +</​code>​
 +Y en el ''​onActivityResult''​ de la Activity A:
 +<code java>
 +protected void onActivityResult(int requestCode,​ int resultCode, Intent data) {
 + if (resultCode != RESULT_OK)
 + return;
 + Bundle bundle = data.getExtras();​
 + int type = bundle.getInt("​type"​);​
 +</​code>​
 === Métodos y propiedades de las Activity === === Métodos y propiedades de las Activity ===
   * Para finalizar una ''​Activity''​ llamaremos a su método ''​finish()''​.   * Para finalizar una ''​Activity''​ llamaremos a su método ''​finish()''​.
Línea 306: Línea 337:
 Intent i = new Intent(this,​ About.class);​ Intent i = new Intent(this,​ About.class);​
 this.startActivity(i);​ this.startActivity(i);​
 +</​code>​
 +
 +
 +
 +==== Vistas ====
 +=== ListView ===
 +Muestran en una ''​Activity''​ una lista de elementos. Existe la ''​Activity''​ especial para mostrar estas llamada ''​ListActivity'',​ por lo tanto si queremos crear una lo que haremos será agregar una clase que herede de esta. Para rellenarla necesitaremos utilizar objetos ''​ListAdapter''​ que corresponden a listas\arrays que le agregaremos,​ para recoger cuando se ha hecho click sobre un elemento utilizaremos el método ''​setOnItemClickListener''​ de la lista interna que recogeremos mediante ''​getListView()'':​
 +<code java>
 +public class OpenVideo extends ListActivity implements OnItemClickListener {
 + protected void onCreate(Bundle savedInstanceState) {
 + super.onCreate(savedInstanceState);​
 + String param = this.getIntent().getExtras().getString("​elements"​);​
 + String[] elems = param.split("​\\?"​);​
 + setListAdapter(new ArrayAdapter<​String>​(this,​ R.layout.openvideo,​ elems));
 + android.widget.ListView lv = this.getListView();​
 + lv.setOnItemClickListener(this);​
 + }
 + public void onItemClick(AdapterView<?>​ arg0, View arg1, int arg2, long arg3) {
 + Bundle bundle = new Bundle();
 + bundle.putInt("​selected",​ arg2);
 + setResult(RESULT_OK,​ mIntent);
 + this.finish();​
 + }
 +}
 +</​code>​
 +Por lo demás, al ser una Activity tendremos que agregarla al ''​AndroidManifest.xml''​ y crear su layout:
 +<code xml>
 +<?xml version="​1.0"​ encoding="​utf-8"?>​
 +<​TextView xmlns:​android="​http://​schemas.android.com/​apk/​res/​android"​
 +    android:​layout_width="​fill_parent"​
 +    android:​layout_height="​fill_parent"​
 +    android:​padding="​10dp"​
 +    android:​textSize="​16sp"​ >
 +</​TextView>​
 </​code>​ </​code>​
  
Línea 414: Línea 479:
 } }
 </​code>​ </​code>​
 +
  
  
Línea 431: Línea 497:
 import android.preference.PreferenceActivity;​ import android.preference.PreferenceActivity;​
 public class Settings extends PreferenceActivity { public class Settings extends PreferenceActivity {
- 
  @Override  @Override
  protected void onCreate(Bundle savedInstanceState) {  protected void onCreate(Bundle savedInstanceState) {
Línea 495: Línea 560:
 ==== El emulador ==== ==== El emulador ====
   * ''​ctrl + f11''​ harán que el emulador cambie de horizontal a vertical.   * ''​ctrl + f11''​ harán que el emulador cambie de horizontal a vertical.
 +
  
 ==== En un dispositivo físico ==== ==== En un dispositivo físico ====
Línea 516: Línea 582:
 Aunque en otros he visto: ''​chmod a+rx /​etc/​udev/​rules.d/​51-android.rules''​ Aunque en otros he visto: ''​chmod a+rx /​etc/​udev/​rules.d/​51-android.rules''​
 === Herramientas === === Herramientas ===
-  * El comando ''​ddms''​ del directorio tools nos abrirá el monitor de debug de Alvik, con él podremos hacer capturas de pantalla.+  * El comando ''​ddms''​ del directorio tools nos abrirá el monitor de debug de Dalvik, con él podremos hacer capturas de pantalla.
  
fw/android.1272829502.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)