Posted by : Unknown domingo, 3 de agosto de 2014

Una aplicación de ejemplo: Mis Lugares

A lo largo de este curso vamos a ir creando una aplicación de ejemplo que toque los aspectos más significativos de Android. Comenzamos en este capítulo creando una serie de vistas que nos permitirán diseñar un sencillo interfaz de usuario.

Práctica: Creación de la aplicación Mis Lugares.
1. Crea un nuevo proyecto con los siguientes datos:
Application Name: Mis Lugares
Project Name: MisLugares
Package Name: com.example.mislugares
Minimun Required SDK: API 8: Android 2.2 (Froyo)
Target SDK: API 18
Compile With: API 19: Android 4.4
Activity Name: MainActivity
Layout Name: activity_main
NOTA: Los dos últimos parámetros se introducen en la última ventana.
2.  Abre el fichero res/layout/activity_main.xml y trata de crear una vista similar a la que ves a continuación. Ha de estar formada por un LinearLayout que contiene un TextView y cuatro Button. Trata de utilizar recursos para introducir los cinco textos que aparecen.
Solución:
1. El fichero activity_main.xml ha de ser similar al siguiente:
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="30dp"
    tools:context=".MainActivity">
  <TextView 
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="@string/app_name"
      android:gravity="center"
      android:textSize="25sp "
      android:layout_marginBottom="20dp"/>
  <Button android:id="@+id/Button01"
      android:layout_height="wrap_content"
      android:layout_width="match_parent"
      android:text="@string/accion_mostrar"/>
  <Button android:id="@+id/Button02"
      android:layout_height="wrap_content"
      android:layout_width="match_parent"
      android:text="@string/accion_preferencias"/>
  <Button android:id="@+id/Button03"
      android:layout_height="wrap_content"
      android:layout_width="match_parent"
      android:text="@string/accion_acerca_de"/>
  <Button android:id="@+id/Button04"
      android:layout_height="wrap_content"
      android:layout_width="match_parent"
      android:text="@string/accion_salir"/>
  </LinearLayout>

2. El fichero res/values/strings.xml ha de tener el siguiente contenido:
<resources>
    <string name="accion_mostrar">Mostrar Lugares</string>
    <string name="accion_preferencias">Preferencias</string>
    <string name="accion_acerca_de">Acerca de </string>
    <string name="accion_salir">Salir</string>
    <string name="app_name">Mis Lugares</string>
    <string name="action_settings">Settings </string>
 </resources>

Práctica: Un formulario para introducir nuevos lugares
El objetivo de esta práctica es crear un layout que permita introducir y editar lugares en la aplicaciónMis Lugares.
1.     Crea un nuevo layout con nombre edicion_lugar.xml.
2.     Ha de parecerse al siguiente formulario. Puedes basarte en un LinearLayout o un RelativeLayoutpara distribuir los elementos. Pero es importante que este layout, se encuentre dentro de un ScrollViewpara que cuando el formulario no quepa en pantalla se pueda desplazar verticalmente.
3.     Introduce a la derecha del TextView con texto “Tipo:” un Spinner con id tipo. Más adelante configuraremos esta vista para que muestre un desplegable con los tipos de lugares.
4.     Las vistas EditText han de definir el atributo id con los valores: nombre, direccion, telefono, url y comentario. Utiliza también el atributo hint para dar indicaciones sobre el valor a introducir. Utiliza el atributo inputType para indicar qué tipo de entrada esperemos. De esta manera se mostrará un teclado adecuado (por ejemplo si introducimos un correo electrónico aparecerá la tecla @).
Nota: El atributo inputType admite los siguientes valores (en negrita los que has de gastar en este ejercicio): none, text, textCapCharacters, textCapWords, textCapSentences, textAutoCorrect, textAutoComplete, textMultiLine, textImeMultiLine, textNoSuggestions, textUri, textEmailAddress, textEmailSubject. textShortMessage, textLongMessage, textPersonName, textPostalAddress, textPassword, textVisiblePassword, textWebEditText, textFilter, textPhonetic, textWebEmailAddress, textWebPassword, number, numberSigned, numberDecimal, numberPassword, phone, datetime, date y time.
5.     Abre la clase MainActivity y reemplaza:
setContentView(R.layout.activity_main);
por
setContentView(R.layout.edicion_lugar);
 

6.     Ejecuta la aplicación y verifica como cambia el tipo de teclado en cada EditText. 

Solución:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
  <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <TextView
            android:id="@+id/t_nombre"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nombre:"
            android:textAppearance="?android:attr/textAppearanceMedium" />
        <EditText
            android:id="@+id/nombre"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/t_nombre"
            android:hint="algo que identifique el lugar" >
            <requestFocus/>
             </EditText
        <TextView
            android:id="@+id/t_tipo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/nombre"
            android:text="Tipo:"
                android:textAppearance="?android:attr/textAppearanceMedium" />
         <Spinner
                  android:id="@+id/tipo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@id/t_tipo"
            android:layout_toRightOf="@id/t_tipo" />
                   <TextView
            android:id="@+id/t_direccion"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/t_tipo"
            android:text="Dirección:"
            android:textAppearance="?android:attr/textAppearanceMedium" />
         <EditText
            android:id="@+id/direccion"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/t_direccion"
            android:hint="dirección del lugar"
            android:inputType="textPostalAddress" />
        <TextView
            android:id="@+id/t_telefono"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/direccion"
            android:text="Telefono:"
            android:textAppearance="?android:attr/textAppearanceMedium" />
        <EditText
            android:id="@+id/telefono"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/t_telefono"
            android:layout_alignTop="@id/t_telefono"
            android:hint="teléfono para contactar"
            android:inputType="phone" />
        <TextView
                 android:id="@+id/t_url"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/telefono"
            android:text="Url:"
            android:textAppearance="?android:attr/textAppearanceMedium" />
        <EditText
            android:id="@+id/url"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/t_url"
            android:hint="página web"
            android:inputType="textUri" />
        <TextView
            android:id="@+id/t_comentario"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/url"
            android:text="Comentario:"
              android:textAppearance="?android:attr/textAppearanceMedium" />
        <EditText
            android:id="@+id/comentario"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/t_comentario"
            android:hint="introduce tus notas"
            android:inputType="textMultiLine" />
   </RelativeLayout>
</ScrollView>

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Android Arm WorkStation - Blogger Templates - Powered by Blogger - Designed by Johanes Djogan -