Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas

martes, 23 de abril de 2013

Depurar en Eclipse


Programación y errores de código es un binomio inseparable. Por lo tanto, resulta fundamental sacar el máximo provechos a las herramientas de depuración.

Depurar con Eclipse

El plug-in de Android para Eclipse tiene una excelente integración con el depurador de Eclipse. Introduce un error en tu código modificando el código fuente de MainActivity para que en método onCreate tenga este este código:
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       Object o = null;
       o.toString();
       setContentView(R.layout.activity_main);
   }
Este cambio introduce un NullPointerException en tu código. Si ahora ejecutas tu aplicación, te aparecerá esto:
Archivo:Componentes4.png

lunes, 22 de abril de 2013

Fixed Tabs y Scrollable Tabs (Crear una view que se mantenga para todas las pestañas)

Para explicar esto nos vamos a ayudar de un ejemplo.

En nuestro caso queremos realizar un TPV (Terminal de Punto de Venta) en android, para ello usaremos Scrollable Tabs de forma que en cada tab sea una categoría de productos y de esa forma se muestren todos los productos de dicha categoría.

Al final de todas las Tabs tendremos la información del Total de la cuenta (lo que deberíamos cobrar).

En este punto es donde nos encontramos el problema, ya que si declaramos ese view en todas las pestaña vemos que al pasar de una a otra sucede lo que vemos en la siguiente imagen

Views (Anclar Layout al pie de un view)

Para realizar esto es muy sencillo, tan solo hace falta añadir android:layout_alignParentBottom="true" al Layout que deseamos que ocupe el pie del view

Un ejemplo seria el siguiente:


<LinearLayout 
     android:id="@+id/total2"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:orientation="horizontal"                                             android:background="@drawable/border" >

     <TextView
         ....

 </LinearLayout>

viernes, 19 de abril de 2013

Action Bar (Scrollable Tabs)

Lo primero que debemos aclarar es que los Scrollable Tabs no son un elemento del Actión Bar como son las Fixed Tabs, pero debido a su similitud las incluimos dentro de la seccion Action Bar.

Las Scrollable Tabs son muy utiles debido a que pueden contener un mayor número de Tabs que las Tabs tipicas. Para acceder a la tab anterior / siguiente basta con deslizare el dedo hacia la izquierda o derecha sobre la pantalla.

Para crear estas Tabs empezaremos ayudandonos de Ecipse, para ello debemos crear una nueva actividad.

jueves, 18 de abril de 2013

Menús (Crear Submenú)

Para la creación de un submenu es tan sencillo como en el archivo de menu (p.e. menu/tpv.xml) añadir lo siguiente:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_add3"
          android:icon="@drawable/ic_launcher"
          android:title="@string/menu_save"
          android:showAsAction="ifRoom">
        <menu>
            <item android:id="@+id/SubMnuOpc13"
                  android:title="Opcion 3.13" />
            <item android:id="@+id/SubMnuOpc23"
                  android:title="Opcion 3.23" />
        </menu>
    </item>
</menu>

miércoles, 17 de abril de 2013

Action Bar (Crear Botones de Accion)


Añadir botones de acción

Un item de acción es simplemente un item de menú del menú de opciones que debería aparecer en la barra de acción. Un item de acción puede incluir un icono y/o texto. Si un item de menú no aparece como un item de acción , el sistema lo coloca en un overflow menu, que el usuario puede abrir con el icono del menú en la parte derecha de la barra de acción.

Figura 2. Pantallazo de una barra de acción con dos items de acción y el overflow menu.
Cuando la actividad se inicia, el sistema rellena la barra de acción y el overflow menu llamando al método onCreateOptionsMenu(). Tal y como se detalla en la sección Crear menús, es en este método callback donde se define el menú de opciones para la actividad.
Se puede hacer que item del menú aparezca como un item de acción—si existe lugar para él—desde el recurso de menú mediante la declaración del android:showAsAction="ifRoom" para el elemento <item>. De esta manera, el item del menú aparece como acceso directo en la barra de acción sólo si existe lugar para ello. Si no hay suficiente lugar, el item se coloca en el overflow menu (mostrado por el icon del menú en la parte derecha de la barra de acción).
También se puede declarar un item del menú para que aparezca como un item de acción en el código de la aplicación, llamando al método setShowAsAction() en el MenuItem y pasándole SHOW_AS_ACTION_IF_ROOM.
Si el item del menú tiene un título y un icono, el item de acción, por defecto sólo muestra el icono. Si se quiere incluir el texto con el item de acción, hay que añadir el flag "with text": en el XML, añadir withText al atributo android:showAsAction o, utilizar en el código de la aplicación el flag SHOW_AS_ACTION_WITH_TEXT cuando se llama al método setShowAsAction(). La figura 2 muestra una barra de acción que tiene dos items de acción con su texto y el icono para el overflow menu.

Action Bar (Eliminar titulo de Actividad)

Para eliminar el nombre de la actividad de la Action Bar solo es necesario editar en el Manifest la propiedad android:label y darle el valor "".

Esto funciona para todas las actividades salvo para la especificada como Main.

Un ejemplo del código es el siguiente:
<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.splashlogin.Splash"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:screenOrientation="landscape"
            android:theme="@style/FullscreenTheme" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.splashlogin.Login"
            android:label="" 
            android:screenOrientation="landscape">
        </activity>
    </application>

Action Bar (Añadir, Eliminar...)


Añadir la barra de acción

La barra de acción se incluye por defecto en todas las actividades cuya version sea Android 3.0 o superior. Más especificamente, todas las actividades que utilizan el nuevo tema "holográfico" incluyen la barra de acción, y cualquier aplicación que tiene como objetivo Android 3.0 recibe automáticamente este tema. Se considera que una aplicación tiene como "objetivo" Android 3.0 cuando se ha seteado bien el atributo android:minSdkVersion o bien el atributoandroid:targetSdkVersion en el elemento <uses-sdk> del archivo Manifest a "11" o mayor que 11. Por ejemplo:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.helloworld"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="4"
              android:targetSdkVersion="11" />
    <application ... >
        ...
    </application>
</manifest>
En este ejemplo, la aplicación necesita una versión mínima de nivel API 4 (Android 1.6), pero también tiene como objetivo API nivel 11 (Android 3.0). De esta manera, cuando se instala la aplicación en un dispositivo con Android 3.0 o superior, el sistema aplica el tema holográfico a cada actividad, y por tanto, cada actividad incluye la barra de acción.
Sin embargo, si se quiere utilizar los APIs de la barra de acción, como añadir pestañas o modificar los estilos de la barra de acción, hay que setear el android:minSdkVersion a "11", para poder acceder a la clase ActionBar.
Existe la posibilidad de utilizar Action Bar para SDKs cuya versión sea menor a 11, aunque para ello se debera usar la biblioteca Sherlook, aunque no trataremos este tema aqui.