lunes, 19 de mayo de 2014

Using Callisto Discovery Site For Eclipse ( Andoid )

Using Callisto Discovery Site  For Eclipse ( Andoid )

The Callisto Discovery Site allows you to install any of the projects included in the Callisto Release from a single location. Instead of downloading each project individually and then installing them into your workspace, the Callisto Discovery Site simplifies the process.

Instructions

To access the Callisto Discovery site:
  • First download either the Eclipse SDK or the Eclipse Platform Runtime Binaries.
  • You then need to use the update manager to load Callisto projects. See Eclipse Help for general information about using Update Manager. You can also view a screencam demonstration of using the Callisto Discovery Site.
  • For most distributions of Eclipse, there should already be a "Callisto Discovery Site" defined in its Update Manager. If you do not see it you can try adding the following URL as a remote update site in your update manager. http://download.eclipse.org/callisto/releases/
  • Alternatively, if you would like to view the list or projects by their Eclipse Project (PMC) organization, you can define a new remote update site, and specify a site-byProject.xml file. In other words, http://download.eclipse.org/callisto/releases/site-byProject.xml

Tips

  • To lessen download time (by installing the minimum number of features), first select the desired feature in the Eclipse update install dialog, then use the "Select Required" button to select only the minimum required prerequisite features.
  • Any time you get a chance, export your bookmark files from the "Add a Site" dialog. Having them saved away in a safe place makes it much easier to re-create another development environment.
  • Since the workbench will have to shutdown and restart you can you do the upgrade and installs with an empty workspace and once satisfied all is well, then use the -data option on the Eclipse command line (or shortcut) to point to your workspace of interest.
  • Both before and after installing "new" features, you may want to use update manager to "Check for updates to currently installed features". In some cases, just installing a feature will not necessarily upgrade all of its prerequisites to the highest available level.

Example of Update Dialog

Here is an example screen shot highlighting. The example is from having started with just the Eclipse Platform Feature installed.

¿Como saber la versión de Android de mi dispositivo?

¿Como saber la versión de Android que tiene nuestro dispositivo?

android 4.3 jelly bean
Es muy fácil saber que versión del sistema operativo Android, está ejecutándose en nuestro dispositivo móvil. El procedimiento aquí descrito es para móviles HTC, pero en definitiva, sirve para otros modelos y marcas que usan el sistema operativo android.
Dependiendo de la versión android que tengamos instalada, el acceso a esta información será a través de los ajustes del teléfono o tableta, en "acerca de".

Procedimiento para saber la versión de Android que tiene nuestro teléfono o tableta android

Pulsamos el botón "menú de aplicaciones" o bajamos la barra de notificaciones y pulsamos la rueda dentada a la derecha. En la pantalla táctil aparecera un menú, pulsamos "ajustes", luego bajamos por ese menu y pulsamos en "acerca del dispositivo".
version de android
En algunos teléfonos y tabletas de ultima generación, ya aparecerá "versión de android" , en los dispositivos más antiguos puede que sea necesario pulsar en "información de software", tras esto tendremos en pantalla toda la información de versión de Android, de banda basekernelnúmero de compilación, número de software y versión del navegador.
Saber la versión android de nuestro teléfono o tableta es determinante ya que sabremos si disponemos de la última versión disponible del sistema android, ya sea Gingrebread 2.3 , ICS 4.0.4 , 4.1 Jelly Bean o 4.4 kitkat.
android 4.4 kitkat
También es bueno saber la versión que tenemos instalada, para consultar problemas o errores en los diferentes foros android, así como exponer al personal de servicio técnico de la marca o en la tienda, para que puedan resolver la situación con mayor celeridad.
Si dispones de otro dispositivo diferente a HTC y quieres compartir el modo de llegar a ver la versión de Android, puedes hacer un comentario a este artículo.

Evento onClick Android

Evento de Click ( onClick ) en botones de Android 


(Extraído de: https://www.lastdragon.net/?p=735,  
att: PBM, un agradecimiento para el autor) 

En mis esfuerzos de evangelización por la programación en Android he encontrado que algunas personas tienen problemas con cosas como el Evento de Click muy básico para cualquier botón en cualquier GUI. Esto es por que se confunden ya que al googlear aparecen al menos 2 formas de hacer lo mismo.
Estas formas de hacer lo mismo dependen de lo que quiere hacer el programador.
En mi caso muy particular a mi me gusta controlar todo lo más posible, excepciones, eventos, etc. Por lo que yo trato siempre de programar todo en código, por todo me refiero a lo ejecutable. Algunas reglas de negocios simplemente nunca se deben programar como hardcode; por lo tanto yo uso 2 formas para manejar eventos de Click la completa en donde hago las implementaciones y las herencias necesarias o la rápida donde simplemente creó un método rápido y le digo al botón creado desde la actividad que maneje el evento de click. Esto último se hace con menos código y mucho más rápido pero no debe usarse en producción, el código queda menos legible
El código completo manejado desde JAVA
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity implements
OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      
super.onCreate(savedInstanceState);
      
setContentView(R.layout.activity_main);
   
   
    Button boton = (Button) findViewById(R.id.button1);
    boton.setOnClickListener(this);
   
    Button boton2 = (Button) findViewById(R.id.button2);
    boton2.setOnClickListener(this);
   
    Button boton3 = (Button) findViewById(R.id.button3);
    boton3.setOnClickListener(this);
   
    }
   
    @Override
    public void onClick (View v)
    {
       
        // El boton uno cambiara su
etiqueta sin importar que boton se le de click
        Button boton = (Button)
findViewById(R.id.button1);
        boton.setText(“Click a un boton
sin controlar la fuente del click”);
       
       
        // Para tener control se
condiciona la identificacion del boton al que se le dio click
        // de estaforma solo se ejecuta
el codigo correspondiente a ese boton
        if (v.getId() == R.id.button2) {
           
          
((TextView)v).setText(“Evento onClick controlado del boton 2″);
        }
       
       
        if (v.getId() == R.id.button3) {
           
          
((TextView)v).setText(“Evento onClick controlado del boton 3″);
        }
       
    }
   
}
El código donde el evento lo maneja la actividad y se declara en el XML de la misma
Parte Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.app.Activity;
public class MainActivity extends Activity  {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      
super.onCreate(savedInstanceState);
      
setContentView(R.layout.activity_main);
   
   
    }
   
    public void clickBoton1 (View v) {
        Button boton = (Button)
findViewById(R.id.button1);
        boton.setText(“Evento Click
controlado por la Actividad, Boton 1″);
    }
    public void clickBoton2 (View v) {
        Button boton = (Button)
findViewById(R.id.button2);
        boton.setText(“Evento Click
controlado por la Actividad, Boton 2″);
    }
    public void clickBoton3 (View v) {
        Button boton = (Button)
findViewById(R.id.button3);
        boton.setText(“Evento Click
controlado por la Actividad, Boton 3″);
    }
}
Parte XML
    <Button
        android:id=”@+id/button1″
      
android:layout_width=”wrap_content”
      
android:layout_height=”wrap_content”
      
android:layout_alignParentLeft=”true”
      
android:layout_alignParentRight=”true”
      
android:layout_alignParentTop=”true”
      
android:layout_marginTop=”81dp”
        android:onClick=”clickBoton1″
        android:text=”Dame Click aka
TAP” />


Archivo R.java Android

Android R.java (fichero)

002

Android y Recursos

Para entender bien que es el fichero R.java y su contenido debemos hablar primero del concepto derecurso en el mundo de Android y su ubicación en la carpeta res.
003
Esta carpeta contiene los ficheros de recursos de Android .Ahora bien ¿que es un recurso en Android?. En Android es un concepto amplio y hace referencia a muchos elementos desde imagenes ,textos ,estilos ,xmls que la aplicación necesita a la hora de trabajar . Sin embargo hay que diferenciar entre Fichero de Recursos y Recurso en si .Un fichero de recursos puede incluir varios recursos dentro de él.
004
Todos los ficheros de recursos se encuentran ubicados en la carperta /res  agrupados por categorias .Vamos a ver el fichero de recursos mas sencillo que se encuentra en la carpeta res/values concretamente se trata del de strings.xml encargado de extraer los textos de la aplicación y parametrizarlos .
009
A continuación su contenido:
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
<string name="app_name">HolaMundo</string>
 <string name="action_settings">Settings</string>
 <string name="hello_world">Hello world!</string>
 
</resources>
Como vemos en este caso es un fichero muy sencillo  dispone de una etiqueta principal <resources> y dentro de ella se encuentran ubicados los diferentes recursos concretos con su nombre  y su valor .
005
Como acabamos de comentar existen muchos tipos de recursos .No vamos a centrarnos ahora en las categorias de estos sino que vamos a introducir otro de los ficheros de recursos principales el de layout ubicado en res/layout y que se suele denominar activity_main.xml.
008
Vamos a ver su contenido
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context=".MainActivity" >
 
<TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/hello_world" />
 
</RelativeLayout>
Realmente no parece algo sencillo de entender ,pero es medianamente normal ya que se trata del fichero que define la estructura de capa de presentación de  la aplicación . Por ahora nos basta con entender que el layout contiene una etiqueta (TextView)
1
2
3
4
<TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/hello_world" />
Vamos a modificar a continuación esta etiqueta <TextView> para asociarla un identificador (+id) que se encarga de convertir una etiqueta en un recurso con un nombre determinado  (texto1)
1
2
3
4
<TextView android:id="@+id/texto1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/hello_world" />

Android R.java

Una vez que tenemos claro que es un fichero de recursos , que dentro de el hay recursos y  que podemos añadir nuevos vamos a ver el contenido del fichero R.java que el compilador genera en la siguiente carpeta y que cuando uno empieza con Android genera muchos problemas.
006
El fichero es pequeño pero su estructura parece chino como se muestra a continuación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.arquitecturajava.holamundo;
 
public final class R {
 public static final class attr {
 }
 public static final class dimen {
 
 public static final int activity_horizontal_margin=0x7f040000;
 public static final int activity_vertical_margin=0x7f040001;
 }
 public static final class drawable {
 public static final int ic_launcher=0x7f020000;
 }
 public static final class id {
 public static final int action_settings=0x7f080001;
 public static final int texto1=0x7f080000;
 }
 public static final class layout {
 public static final int activity_main=0x7f030000;
 }
 public static final class menu {
 public static final int main=0x7f070000;
 }
 public static final class string {
 public static final int action_settings=0x7f050001;
 public static final int app_name=0x7f050000;
 public static final int hello_world=0x7f050002;
 public static final int hola_mundo=0x7f050003;
 }
 public static final class style {
 public static final int AppBaseTheme=0x7f060000;
 
 public static final int AppTheme=0x7f060001;
 }
}
Se trata de una clase llena de variables estáticas en las que se identifica cada tipo de recurso . Como podemos ver la cadena de hello_world esta en la sección de Strings y el id texto1 en la sección de ids. ¿Pero para que sirve esta clase exactamente?.  Al final todo es mas sencillo de lo que pareceAndroid usa ficheros xml para definir varias estructuras (cadenas de texto,layouts, estilos etc).
010
Todas estas estructuras XML serán leidas cuando la aplicación arranque …. pero como nos encontramos en una plataforma movil el trabajo con XML directo podría ser demoledor y lento . Por lo tanto Android despues de leer el fichero XML carga todas las estructuras que se han solicitado en memoria y mantiene el fichero R como referencia directa a los recursos que se han cargado de esta manera el acceso será directo y sencillo para el programador.
011

Usando el fichero R

Vamos a ver un sencillo bloque de código en el cual usamos el fichero R para localizar el TextView de la aplicación y cambiar su contenido . Para ello modificaremos el fichero de recursos de strings.xml y añadiremos una nueva cadena “hola_mundo”.
1
2
3
4
5
6
7
8
<resources>
 
<string name="app_name">HolaMundo</string>
 <string name="action_settings">Settings</string>
 <string name="hello_world">Hello world!</string>
 <string name="hola_mundo">Hola Mundo</string>
 
</resources>
Hecho esto modificaremos el programa principal para hacer uso del fichero R y cambiar el texto por defecto de la aplicación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.arquitecturajava.holamundo;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
 
public class MainActivity extends Activity {
 
@Override
 protected void onCreate(Bundle savedInstanceState) {
 
 super.onCreate(savedInstanceState);
 
 setContentView(R.layout.activity_main);
 TextView texto1= (TextView) findViewById(R.id.texto1);
 texto1.setText(R.string.hola_mundo);
 }
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 getMenuInflater().inflate(R.menu.main, menu);
 return true;
 }
 
}
El código fundamental son estas dos lineas
1
2
TextView texto1= (TextView) findViewById(R.id.texto1);
 texto1.setText(R.string.hola_mundo);
El método findViewById nos localiza el TextView usando el fichero R y el bloque de identificadores y luego simplemente usamos el fichero R y su acceso a las cadenas para cambiar el contenido. el programa mostrará lo siguiente.
012
Como podemos ver el fichero R es necesario conocerlo incluso para operaciones triviales .
extraido originalmente del website de  on 9 enero, 2014 in Android