0% encontró este documento útil (0 votos)
32 vistas20 páginas

Controles Avanzados

Cargado por

jaidertito11
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas20 páginas

Controles Avanzados

Cargado por

jaidertito11
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 20

Controles Avanzados

Agenda
 Views como Layouts
 ListView
 GridView
 Otros Controles
 Diálogo
 DatePicker, TimePicker
 ProgressBar
 Controles Tipo Menu
 Action Bar
 Menu contextual / Modo de Acción Contextual
 Menu Popup
 Manejo de Eventos
 Múltiple Tipos de Interacción
 Tipos de Eventos
 Escuchador de Eventos
 Clase Interna Anónima
 Implementación en la Actividad
 Método Personalizado
 Recuperación de texto de los controles
ListView

 Un control ListView muestra al usuario una lista de opciones seleccionables


directamente sobre el propio control, sin listas emergentes como en el caso
del control Spinner. En caso de existir más opciones de las que se pueden
mostrar sobre el control se podrá por supuesto hacer scroll sobre la lista para
acceder al resto de elementos.
 Al igual que el spinner, se necesitan 3 cosas para que funcione:
 El control como tal,
 La fuente de datos dinámica o estática,
 Y el adaptador que puede ser
 Simple
 Complejo (el que vamos a utilizar)
El control y la fuente de datos
 Como siempre, el control se define en el xml

 La fuente de datos de un ListView casi siempre es una Lista simple o compleja.


El adaptador

 El adaptador simple, es el adaptador por defecto para mostrar un solo


elemento en la lista.
ArrayAdapter<String> adaptador =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, opciones);

 El adaptador complejo, es el que nos permite tener un personalización en lo


que queremos mostrar sobre el ListView, por lo que debemos crear tres
archivos propios.
 El adaptador como tal,
 Una clase modelo de lo que queremos mostrar
 Un layout personalizado
Layout propio
Clase-Objeto
 Básicamente, es el conjunto de
todos los datos que queremos
mostrar sobre UN SOLO
REGISTRO DEL LISTVIEW, además,
valga la redundancia, al trabajar
con ListView debemos trabajar
con listas de estos objetos -
List<Titulos> - que seria lo que
se le debe pegar al control.
Adaptador Propio
 Es una clase java creada que hereda de la clase ArrayAdapter<tipo> que
queremos definir (en el ejemplo, ArrayAdapter<Titulos>).
 Es la encargada de setear cada control interno del listview
DatePicker, TimePicker
 DatePicker y TimePicker son controles que se extienden android.widget.FrameLayout.
 Se utilizan para mostrar el widget de selección de fecha y hora en la aplicación de
Android. Se pueden usar en modo giratorio o en modo calendario (selector de fecha),
modo reloj (selector de hora). Puedes controlar su apariencia con sus propiedades.
DatePicker, TimePicker
ProgressBar
 Un elemento de la interfaz de usuario que indica el progreso de una
operación.

 Métodos importantes
 setProgress(int)
 setVisibility(View.Gone o View.Invisible)
 SetMin(int) o setMax(int)

Fuente: https://developer.android.com/reference/android/widget/ProgressBar
Menus en Android
 A partir de la versión 3 de Android los menús han caido en desuso debido a la
aparición de la Action Bar. De hecho, si compilas tu aplicación con un target
igual o superior a la API 11 (Android 3.0) verás como los menús que definas
aparecen, no en su lugar habitual en la parte inferior de la pantalla, sino en
el menú desplegable de la action bar en la parte superior derecha.
Action Bar
 Es la barra de título y herramientas que aparece en la parte superior de la
gran mayoría de aplicaciones actuales de la plataforma Android.
 La app bar normalmente muestra el título de la aplicación o la actividad en la
que nos encontramos, una serie de botones de acción, y un menú desplegable
(menú de overflow) donde se incluyen más acciones que no tienen espacio
para mostrarse como botón o simplemente no se quieren mostrar como tal.
Menú basico
 Un menú se define, como la mayoría de los recursos de Android, mediante un fichero XML, y se
colocará en la carpeta /res/menu. El menú se definirá mediante un elemento raiz <menu> y
contendrá una serie de elementos <item> que representarán cada una de las opciones. Los
elementos <item> por su parte podrán incluir varios atributos que lo definan, entre los que destacan
los siguientes:
 android:id. El ID identificativo del elemento, con el que podremos hacer referencia dicha opción.
 android:title. El texto que se visualizará para la opción.
 android:icon. El icono asociado a la acción.
 android:showAsAction. Si se está mostrando una action bar, este atributo indica si la opción de menú
se mostrará como botón de acción o como parte del menú de overflow. Puede tomar varios valores:
 ifRoom. Se mostrará como botón de acción sólo si hay espacio disponible.
 withText. Se mostrará el texto de la opción junto al icono en el caso de que éste se esté mostrando como
botón de acción.
 never. La opción siempre se mostrará como parte del menú de overflow.
 always. La opción siempre se mostrará como botón de acción. Este valor puede provocar que los elementos se
solapen si no hay espacio suficiente para ellos.
Código, aplica para ambos casos
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">

public class MainActivity extends AppCompatActivity {


<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100" //...
app:showAsAction="never" />

@Override
<item android:id="@+id/action_buscar"
android:title="@string/action_buscar" public boolean onCreateOptionsMenu(Menu menu) {
android:icon="@drawable/ic_buscar" // Inflate the menu; this adds items to the action bar if it is present.
android:orderInCategory="100" getMenuInflater().inflate(R.menu.menu_main, menu);
app:showAsAction="ifRoom" />
return true;
}
<item android:id="@+id/action_nuevo" }
android:title="@string/action_nuevo"
android:icon="@drawable/ic_nuevo"
android:orderInCategory="100"
app:showAsAction="ifRoom|withText" />

</menu>
Para saber la opción seleccionada
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_nuevo:
Log.i("ActionBar", "Nuevo!");
return true;
case R.id.action_buscar:
Log.i("ActionBar", "Buscar!");;
return true;
case R.id.action_settings:
Log.i("ActionBar", "Settings!");;
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Menu contextual / Modo
de Acción Contextual

 Este tipo de menú siempre va


asociado a un control concreto de
la pantalla y se muestra al realizar
una pulsación larga sobre éste.
Suele mostrar opciones específicas
disponibles únicamente para el
elemento pulsado. Por ejemplo, en
un control de tipo lista podríamos
tener un menú contextual que
apareciera al pulsar sobre un
elemento concreto de la lista y
que permitiera editar su texto o
eliminarlo de la colección.
Agregando el menú
 Vamos a añadir en primer lugar un menú contextual que aparezca al pulsar sobre la
etiqueta de texto. Para ello, lo primero que vamos a hacer es indicar en el
método onCreate() de nuestra actividad principal que la etiqueta tendrá asociado un
menú contextual. Esto lo conseguimos con una llamada a registerForContextMenu()
Varios menú contextuales en una sola
Activity
Acciones sobre los menú contextuales

También podría gustarte