martes, 29 de mayo de 2012

Posicionar los tabs debajo de la aplicación

A pesar de que las "User Guidelines" de Android aconsejan que las pestañas tienen que posicionarse arriba (debajo de la action Bar) muchos usuarios insisten en ponerlos abajo. Para todos aquellos usuarios a continuación les dejo el fragmento de código que permite realizar dicha acción.

En nuestro fichero XML añadimos el siguiente código:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost" android:layout_width="match_parent"
    android:layout_height="match_parent" android:background="@color/blanc">
    <LinearLayout android:orientation="vertical"
        android:layout_width="match_parent" android:layout_height="match_parent">

        <FrameLayout android:id="@android:id/tabcontent"
            android:layout_width="match_parent" android:layout_height="match_parent"
            android:layout_weight="1">
        </FrameLayout>

        <TabWidget android:id="@android:id/tabs"
            android:layout_width="fill_parent" android:layout_height="34dip"
            android:layout_weight="0"/>
    </LinearLayout>
</TabHost>

Cómo podemos ver la idea es simplemente colocar el TabWidget debajo del FrameLayout.


It works!


Roger Sala,

Comprobar si se dispone de Connexión a Internet

En la mayoría de aplicaciones la información que se muestra se obtiene de un servidor. Para poder obtener dicha información primero de todo es necesario comprobar que el dispositivo dispone de connexión a Internet. Para ello podemos usar la siguiente función:  

 public static boolean isInternetEnabled(Context context) {
        ConnectivityManager connectivity = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity == null) {
            return false;
        } else {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null) {
                for (int i = 0; i < info.length; i++) {
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                           return true;
                    }
                }
            }
        }
        return false;
    }

Espero que sea de utilidad! Saludos


It works!


Roger,