wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Android Segundo Boque

Total questions: 129

Worksheet time: 1hrs 5mins

Name
Class
Date
1.

En un EditText, ¿qué propiedad es la más adecuada para mostrar un texto de ayuda que desaparezca cuando el usuario empieza a escribir?

a)

android:text

b)

android:label

c)

android:hint

d)

android:placeholder

2.

¿Qué unidad se recomienda usar para el tamaño de letra en un EditText para respetar la accesibilidad y los ajustes de fuente del sistema?

a)

dp

b)

px

c)

sp

d)

pt

3.

¿Cuál es el efecto de usar android:layout_width="match_parent" en un EditText dentro de un LinearLayout horizontal?

a)

El EditText ocupará solo el espacio mínimo necesario para su contenido.

b)

El EditText intentará ocupar todo el ancho disponible en el contenedor.

c)

El EditText será invisible hasta que tenga foco.

d)

El EditText se ajustará a la altura del padre pero no al ancho.

4.

¿Qué ocurre si se establece simultáneamente android:text y android:hint en un EditText?

a)

El hint se muestra encima del texto inicial.

b)

Solo se muestra el hint y el texto se ignora.

c)

Solo se muestra el texto; el hint no llega a verse.

d)

Android lanza una excepción en tiempo de ejecución.

5.

Dado este XML de un EditText con minLines="2", maxLines="4" y lines="3": ¿Cuál de las siguientes afirmaciones describe mejor el comportamiento de las líneas visibles?

a)

Siempre mostrará exactamente 3 líneas visibles.

b)

Nunca podrá mostrar más de 2 líneas.

c)

Puede crecer hasta 4 líneas visibles, pero arranca visualmente con 3.

d)

lines anula completamente minLines y maxLines.

6.

¿Qué propiedad debes cambiar para que el texto del EditText aparezca en negrita?

a)

android:textWeight="bold"

b)

android:textStyle="bold"

c)

android:fontBold="true"

d)

android:style="@style/TextBold" es obligatoria

7.

¿Qué hace realmente la propiedad android:inputType de un EditText?

a)

Impide que el usuario escriba caracteres no válidos.

b)

Selecciona el tipo de teclado/IME y da pistas de formato al sistema.

c)

Solo cambia el color del texto según el tipo de entrada.

d)

Solo sirve para establecer la longitud máxima del texto.

8.

Si quieres que un EditText acepte solo números enteros y muestre un teclado numérico, ¿qué valor es apropiado para android:inputType?

a)

textPassword

b)

number

c)

phone

d)

numberSigned|numberDecimal

9.

¿Cuál es el efecto de android:textColorHint en un EditText?

a)

Cambia el color del texto cuando el campo tiene foco.

b)

Cambia el color del texto del placeholder (hint) cuando el campo está vacío.

c)

Cambia el color del borde del EditText.

d)

Cambia el color del texto cuando hay un error de validación.

10.

Para mejorar la legibilidad del texto dentro de un EditText, ¿qué propiedad añadirías principalmente?

a)

android:margin="12dp"

b)

android:padding="12dp"

c)

android:lineSpacingExtra="12dp"

d)

android:scaleX="1.2"

11.

En cuanto a dimensiones, ¿qué recomendación es correcta para diseñar EditText?

a)

Usar siempre px para tamaños de texto y paddings.

b)

Usar sp para paddings y dp para texto.

c)

Usar dp para paddings/márgenes y sp para el tamaño de texto.

d)

Usar solo dp para todo.

12.

Tienes este código en Kotlin: val etNombre = findViewById(R.id.etNombre); etNombre.setText(""); etNombre.hint = "Introduce tu nombre". ¿Qué verá el usuario inicialmente en el campo?

a)

El campo vacío, sin texto.

b)

El texto "Introduce tu nombre" en modo hint (grisáceo).

c)

Nada, porque setText("") elimina el hint.

d)

Un error en tiempo de ejecución por mezclar hint y texto.

13.

¿Qué componente de Android se encarga de mostrar el teclado virtual cuando un EditText recibe foco?

a)

InputManagerService

b)

InputMethodEditor (IME) / teclado del sistema

c)

KeyboardController

d)

TextInputLayout

14.

¿Cuál es una razón típica para añadir un TextWatcher a un EditText?

a)

Cambiar el color de fondo una sola vez al crearse la actividad.

b)

Detectar en tiempo real los cambios de texto para validar mientras el usuario escribe.

c)

Evitar que el usuario pueda borrar el contenido.

d)

Capturar exclusivamente el momento en que el campo pierde el foco.

15.

Dado este código: setOnFocusChangeListener { _, hasFocus -> if (!hasFocus && etEmail.text.isNullOrBlank()) { etEmail.error = "El email es obligatorio" } }. ¿Qué comportamiento implementa?

a)

Valida el email carácter a carácter.

b)

Solo valida cuando el usuario pulsa un botón.

c)

Valida al perder el foco; si está vacío, muestra un error en el EditText.

d)

Nunca se ejecuta porque hasFocus siempre es true.

16.

Si necesitas que un EditText crezca verticalmente a medida que el usuario añade más texto, pero manteniendo un mínimo de 2 líneas, ¿qué valor es más apropiado?

a)

android:lines="2"

b)

android:minLines="2"

c)

android:maxLines="2"

d)

android:singleLine="true"

17.

¿Qué problema de usabilidad puedes generar si defines un EditText largo con android:layout_width="wrap_content" y sin restricciones adicionales dentro de un ConstraintLayout?

a)

El campo será siempre de ancho completo.

b)

El campo puede quedar demasiado estrecho o deformarse según el contenido.

c)

El campo no será clicable.

d)

El campo no mostrará el teclado.

18.

¿Cuál de las siguientes NO es una buena práctica en el diseño de EditText en formularios?

a)

Dejar el android:text vacío y usar hint.

b)

Usar sp para el texto.

c)

Revisar la accesibilidad y contrastes de colores.

d)

Usar texto explicativo muy largo dentro del EditText vía android:text.

19.

Tienes este código: etPassword.inputType = InputType.TYPE_CLASS_TEXT. ¿Qué inconveniente tiene en un campo de contraseña?

a)

No permite escribir letras.

b)

El texto se mostrará en claro, sin ocultarse.

c)

El teclado no se mostrará.

d)

El campo dejará de aceptar números.

20.

¿Cuál es la combinación más adecuada para un campo de contraseña típico?

a)

TYPE_CLASS_TEXT o TYPE_TEXT_VARIATION_PASSWORD

b)

TYPE_CLASS_NUMBER

c)

TYPE_CLASS_TEXT o TYPE_TEXT_FLAG_CAP_WORDS

d)

TYPE_CLASS_TEXT o TYPE_TEXT_VARIATION_EMAIL_ADDRESS

21.

En un formulario con varios EditText, ¿qué ventaja tiene configurar bien la opción "Siguiente" del teclado (imeOptions)?

a)

Cambia el tema de la app.

b)

Permite que el usuario navegue fluidamente de un campo a otro sin tocar la pantalla.

c)

Obliga al usuario a cerrar siempre el teclado.

d)

Desactiva el foco automático.

22.

¿Cuál es el riesgo de fijar un EditText con demasiadas líneas iniciales (android:lines="10") en una pantalla ya muy cargada de componentes?

a)

Consume más memoria de la app.

b)

Puede empujar otros componentes fuera de la pantalla, obligando a hacer scroll excesivo.

c)

Hace que el teclado no aparezca.

d)

Desactiva el autocompletado.

23.

Dado este XML en ConstraintLayout: ¿Por qué se usa 0dp en el ancho?

a)

Para que el campo sea invisible.

b)

Es obligatorio para todos los EditText.

c)

Para que el ancho se determine por las restricciones (match constraints).

d)

Para que coincida con el alto del padre.

24.

En términos de experiencia de usuario, ¿cuál es el uso más adecuado de un EditText simple?

a)

Seleccionar elementos de una lista corta.

b)

Introducir texto libre, como comentarios, nombres o búsquedas.

c)

Reemplazar a un Spinner.

d)

Mostrar valores de solo lectura.

25.

¿Qué método de EditText usarías en Kotlin para limpiar completamente el texto introducido?

a)

et.text.clear()

b)

et.reset()

c)

et.invalidate()

d)

et.removeAll()

26.

¿Qué ventaja tiene establecer el hint desde recursos (@string/...) en lugar de escribirlo literal en el XML?

a)

Evita que el EditText tenga foco.

b)

Permite reutilización, traducción y mantenimiento más sencillo.

c)

Mejora el rendimiento del layout.

d)

Hace que el texto sea siempre en mayúsculas.

27.

¿Cuál es la diferencia principal entre android:lines y android:maxLines en un EditText multilínea?

a)

lines controla el tamaño inicial y maxLines el límite superior de crecimiento.

b)

lines controla el límite superior y maxLines el inicial.

c)

Son equivalentes.

d)

Solo maxLines afecta al comportamiento.

28.

¿Qué patrón es más correcto para validar un campo obligatorio cuando el usuario pulsa un botón "Guardar"?

a)

Validar dentro del onCreate.

b)

Validar en un TextWatcher y nunca al pulsar el botón.

c)

Al hacer clic en "Guardar", leer todos los EditText y mostrar errores si están vacíos.

d)

No validar si el usuario ya ha visto el formulario una vez.

29.

¿Qué llamada sería más adecuada para poner el foco inicial en un EditText al abrir la pantalla?

a)

et.requestFocus() y opcionalmente mostrar el teclado.

b)

et.performClick()

c)

et.setSelected(true)

d)

No se puede controlar desde código.

30.

¿Por qué puede ser mala idea usar un EditText como sustituto de un control de selección (por ejemplo escribir manualmente el nombre de una provincia)?

a)

Porque EditText no soporta teclado.

b)

Porque dificulta la validación, permite errores tipográficos y no guía al usuario en las opciones.

c)

Porque consume demasiada memoria.

d)

Porque siempre requiere conexión a Internet.

31.

¿Cuál es la función principal de un ArrayAdapter en Android?

a)

Validar formularios.

b)

Actuar como puente entre una lista de datos y un componente visual como el Spinner.

c)

Cargar imágenes desde Internet.

d)

Crear hilos de fondo.

32.

¿En qué caso es más apropiado usar un Spinner frente a un AutoCompleteTextView?

a)

Cuando la lista es enorme (miles de elementos).

b)

Cuando quieres que el usuario escriba y busque entre una lista muy grande.

c)

Cuando la lista es corta/mediana y no necesitas que el usuario teclee.

d)

Cuando quieres introducir texto libre.

33.

En un Spinner se recomienda declarar los datos en res/values/arrays.xml. ¿Cuál es la principal ventaja?

a)

Permite que el Spinner cargue más rápido.

b)

Facilita la reutilización, traducción y mantenimiento de la lista de opciones.

c)

Es obligatorio para que el Spinner funcione.

d)

Evita tener que usar un Adapter.

34.

Dado este XML de un Spinner: ¿Qué implica android:entries?

a)

Carga datos desde Internet.

b)

Carga las opciones desde un string-array de recursos.

c)

Crea automáticamente un ArrayAdapter interno con ese recurso.

d)

b) y c) son correctas.

35.

¿Cuál es un caso de uso típico de AutoCompleteTextView?

a)

Seleccionar entre 3 opciones fijas.

b)

Elegir rápido entre listas medianas/grandes como ciudades o productos, escribiendo y filtrando.

c)

Sustituir siempre a EditText.

d)

Mostrar solo texto de solo lectura.

36.

¿Qué hace la propiedad completionThreshold en un AutoCompleteTextView?

a)

Define cuántos caracteres máximos puede escribir el usuario.

b)

Define a partir de cuántos caracteres escritos se empiezan a mostrar sugerencias.

c)

Define el número de sugerencias visibles a la vez.

d)

Define el tamaño de la lista interna.

37.

¿Cuál es el valor por defecto de completionThreshold si no se configura?

a)

0

b)

1

c)

2

d)

3

38.

Tienes este código: val actvCiudades = findViewById(R.id.actvCiudades) actvCiudades.threshold = 1 ¿Qué efecto tiene?

a)

No tendrá efecto si no se asigna un adapter.

b)

Empezará a mostrar sugerencias desde que el usuario escriba 1 carácter.

c)

Impide que el usuario borre el texto.

d)

Muestra siempre todas las opciones, aunque no se escriba nada.

39.

¿Por qué en AutoCompleteTextView no se suelen definir las opciones directamente en XML como en Spinner?

a)

Porque está prohibido por Android.

b)

Porque siempre requiere datos remotos.

c)

Porque se espera rellenarlo desde código con un ArrayAdapter, normalmente con datos más dinámicos.

d)

Porque no admite ArrayAdapter.

40.

¿Qué evento usarías en un AutoCompleteTextView para saber exactamente qué opción del desplegable seleccionó el usuario?

a)

setOnFocusChangeListener

b)

addTextChangedListener

c)

setOnItemClickListener

d)

setOnDismissListener

41.

¿Cuál es el propósito principal de setOnFocusChangeListener en un AutoCompleteTextView?

a)

Detectar qué elemento de la lista ha sido pulsado.

b)

Validar o limpiar errores al entrar o salir del campo.

c)

Filtrar dinámicamente las sugerencias.

d)

Cerrar el teclado cuando se selecciona una opción.

42.

¿Qué característica tiene addTextChangedListener sobre un AutoCompleteTextView o EditText?

a)

Se dispara solo una vez cuando se crea el campo.

b)

Se dispara únicamente al perder el foco.

c)

Notifica múltiples veces durante la escritura, permitiendo validación y lógica en tiempo real.

d)

Solo notifica cuando el texto queda vacío.

43.

¿Para qué se usa setOnDismissListener en AutoCompleteTextView?

a)

Para controlar el cierre del desplegable de sugerencias, haya o no selección.

b)

Para validar carácter a carácter.

c)

Para bloquear el cierre del menú.

d)

Para cambiar el color del desplegable.

44.

¿Qué control de selección usarías para permitir una sola selección visible a la vez con muy pocas opciones (p. ej. 3)?

a)

Spinner

b)

RadioButton + RadioGroup

c)

CheckBox

d)

SeekBar

45.

¿Qué control se recomienda como reemplazo moderno del Spinner en UIs basadas en Material Design?

a)

AutoCompleteTextView sin más

b)

RecyclerView

c)

Exposed Dropdown de Material

d)

ListView

46.

Dado este código para un Spinner: val estados = listOf("Activo", "Pendiente", "Archivado") val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, estados) adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) spEstado.adapter = adapter ¿Qué hace setDropDownViewResource?

a)

Cambia el layout del elemento seleccionado (cerrado).

b)

Configura el layout que se usa para cada fila en el desplegable.

c)

Cambia el tema general de la app.

d)

Establece el layout del hint del Spinner.

47.

¿Qué interfaz suele implementarse para capturar el elemento seleccionado en un Spinner?

a)

TextWatcher

b)

AdapterView.OnItemSelectedListener

c)

OnClickListener

d)

OnFocusChangeListener

48.

¿Cuándo se dispara normalmente onItemSelected la primera vez en un Spinner, incluso sin interacción explícita del usuario?

a)

Nunca, solo si el usuario hace clic.

b)

Justo después de asignar el adapter, seleccionando la primera opción.

c)

Solo cuando se cierra la Activity.

d)

Cuando se cambia la orientación, pero no al inicio.

49.

¿Qué desventaja de UX tiene el Spinner en comparación con controles modernos como Exposed Dropdown o AutoCompleteTextView?

a)

No soporta adaptadores.

b)

Es menos discoverable, requiere más clics y oculta las opciones hasta que se pulsa.

c)

No funciona en modo oscuro.

d)

No se puede usar en móviles antiguos.

50.

Dado este fragmento para AutoCompleteTextView: actvCiudades.setOnItemClickListener { parent, view, position, id -> val ciudadSeleccionada = parent.getItemAtPosition(position) as String } ¿Qué representa parent?

a)

Siempre es la Activity.

b)

Es el teclado (IME).

c)

Es el AdapterView que contiene el AutoCompleteTextView y sus datos.

d)

Es el layout root XML.

51.

¿Qué control de selección usarías para permitir múltiples valores autocompletados separados (por ejemplo, destinatarios de un correo)?

a)

AutoCompleteTextView

b)

MultiAutoCompleteTextView

c)

Spinner

d)

NumberPicker

52.

¿Cuál de estos controles se ajusta mejor a seleccionar un rango (mínimo y máximo) de valores, como un rango de precios?

a)

SeekBar

b)

RangeSlider

c)

NumberPicker

d)

Spinner

53.

Tienes un filtro por categorías que permite marcar varias etiquetas a la vez de forma visual (tipo chips). ¿Qué control sugiere el material?

a)

RadioGroup

b)

ChipGroup

c)

Spinner

d)

EditText

54.

¿Qué patrón de diseño se incumple si rellenas un Spinner directamente con una lista enorme desde el hilo principal sin usar adaptadores ni hilos de fondo adicionales?

a)

Separación de responsabilidades (demasiada lógica en la UI).

b)

Uso de MVC.

c)

Uso de patrones creacionales.

d)

Ninguno, es correcto.

55.

En un formulario complejo, decides usar AutoCompleteTextView para provincias. ¿Qué validación extra sería necesaria además del autocompletado?

a)

Verificar que el texto final coincide con una opción de la lista.

b)

Verificar que el usuario ha pulsado dos veces la opción.

c)

Verificar que la provincia tiene más de 5 letras.

d)

No es necesaria ninguna validación.

56.

Dado este código incorrecto: val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1) spEstado.adapter = adapter ¿Qué problema tiene?

a)

Falta indicar el layout del dropdown.

b)

No se ha pasado la lista de datos al ArrayAdapter.

c)

simple_list_item_1 no puede usarse con Spinners.

d)

Hay que usar siempre un adapter personalizado.

57.

En este código de Spinner: spEstado.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) { // lógica } override fun onNothingSelected(parent: AdapterView<*>) { } } ¿Cuándo se ejecuta onNothingSelected?

a)

Cuando el usuario borra el texto seleccionado.

b)

Cuando no hay ningún elemento seleccionado en el Spinner (situación rara).

c)

Siempre que se cambia de opción.

d)

Nunca se llama en Android.

58.

En un AutoCompleteTextView, ¿por qué puede ser peligroso basar toda la lógica en addTextChangedListener sin usar setOnItemClickListener?

a)

Porque addTextChangedListener no funciona con adaptadores.

b)

Porque no distingue entre texto escrito y opción seleccionada, lo que complica saber qué elemento eligió el usuario.

c)

Porque bloquea el teclado.

d)

Porque siempre se ejecuta en un hilo de fondo.

59.

Si necesitas que un Spinner se actualice cuando cambian los datos (por ejemplo, tras llamar a una API), ¿qué paso es imprescindible tras modificar la lista usada por el ArrayAdapter?

a)

Volver a crear la Activity.

b)

Llamar a adapter.notifyDataSetChanged().

c)

Limpiar el foco del Spinner.

d)

No hace falta nada; se actualiza solo.

60.

En una pantalla de filtros avanzados tienes dos campos: uno para seleccionar una ciudad entre muchas y otro para elegir un estado entre 3 valores (“Activo”, “Pendiente”, “Archivado”). ¿Qué combinación de controles se ajusta mejor?

a)

Ciudad: Spinner; Estado: AutoCompleteTextView

b)

Ciudad: AutoCompleteTextView; Estado: Spinner

c)

Ambos: Spinner

d)

Ambos: AutoCompleteTextView

61.

¿Cuál es la función principal de un TextView en Android?

a)

Permitir escribir texto editable

b)

Mostrar texto fijo o generado por la lógica de la app

c)

Reproducir audio en segundo plano

d)

Dibujar formas geométricas

62.

¿Qué atributo define el texto que se ve dentro de un TextView en el XML del layout?

a)

android:label

b)

android:message

c)

android:text

63.

¿Qué significa exactamente android:layout_width="wrap_content" en un TextView?

a)

El TextView ocupa todo el ancho del padre

b)

El TextView se adapta al tamaño de su contenido

c)

El texto se fuerza a una sola línea

d)

El TextView se oculta si no hay texto

64.

Para el tamaño de letra de un TextView, ¿qué unidad es la recomendada para respetar las preferencias de accesibilidad del usuario?

a)

dp

b)

px

c)

sp

d)

pt

65.

¿En qué carpeta de recursos deben guardarse las fuentes personalizadas para usarlas en un TextView?

a)

res/raw

b)

res/assets

c)

res/font

d)

res/fonts_custom

66.

¿Qué propiedad debes usar para que un TextView muestre "…" al final cuando el texto no cabe en una línea visible?

a)

android:truncate="true"

b)

android:cutText="true"

c)

android:overflow="dots"

d)

android:ellipsize="end"

67.

¿Qué atributo controla la alineación del texto dentro del área del TextView?

a)

android:layout_gravity

b)

android:gravity

c)

android:position

d)

android:textAlignmentParent

68.

¿Qué archivo de recursos se utiliza para almacenar textos reutilizables y traducibles de la aplicación?

a)

colors.xml

b)

styles.xml

c)

strings.xml

d)

dimens.xml

69.

En Kotlin, ¿cuál de las siguientes instrucciones cambia correctamente el texto de un TextView llamado tvMensaje?

a)

tvMensaje.value = "Hola"

b)

tvMensaje.message("Hola")

c)

tvMensaje.text = "Hola"

d)

tvMensaje.setValue("Hola")

70.

Dentro de un OnClickListener, ¿qué propiedad de la vista recibida como parámetro te permite saber qué componente lanzó el evento?

a)

view.tag

b)

view.id

c)

view.name

d)

context.viewId

71.

¿Qué devuelve resources.getResourceEntryName(view.id) en una Activity?

a)

El texto actual del TextView

b)

El nombre del paquete de la app

c)

El nombre del identificador, por ejemplo "tvTitulo"

d)

El valor numérico del color del texto

72.

¿Qué tipo de dato devuelve el bloque lambda de setOnLongClickListener en un TextView?

a)

Unit

b)

Int

c)

Boolean

d)

String

73.

¿Qué método de la clase Resources permite obtener el nombre simbólico del recurso a partir de su id entero?

a)

getNameById()

b)

getViewName()

c)

getResourceEntryName()

d)

getResourceStringName()

74.

¿Qué hace realmente la función apply {} cuando la usamos sobre un TextView en Kotlin?

a)

Ejecuta un bloque sin devolver nada

b)

Configura el objeto y devuelve ese mismo objeto tras aplicarle los cambios

c)

Crea un hilo nuevo para cada llamada

d)

Libera la memoria del objeto tras el bloque

75.

¿Cuál de los siguientes usos de apply {} es correcto con un TextView?

a)

tvMensaje.apply("Hola")

b)

tvMensaje.apply { text = "Hola"; textSize = 18f }

c)

apply { tvMensaje.text = "Hola" }

d)

apply(tvMensaje) { it.text = "Hola" }

76.

Dado este código: val tv = findViewById(R.id.tvMensaje).apply { text = "Hola mundo" textSize = 20f setTextColor(Color.RED) } ¿Cuál de las siguientes afirmaciones es correcta?

a)

tv vale Unit

b)

tv es el propio TextView configurado

c)

El código no compila porque apply no devuelve nada

d)

textSize no puede modificarse dentro de apply

77.

Supón este XML: ¿Qué comportamiento esperas si el texto es muy largo?

a)

Solo una línea, sin puntos suspensivos

b)

Hasta 3 líneas visibles y, si no cabe, "..." en la última

c)

Solo muestra las 2 primeras líneas

d)

Muestra todo el texto sin corte

78.

Tienes este código de evento: tvTitulo.setOnClickListener { view -> val nombreId = resources.getResourceEntryName(view.id) Toast.makeText(this, nombreId, Toast.LENGTH_SHORT).show() } ¿Qué se mostrará en el Toast al pulsar sobre tvTitulo?

a)

El texto actual del TextView

b)

El valor entero del id

c)

El nombre del recurso, por ejemplo "tvTitulo"

d)

El nombre del paquete de la app

79.

¿Cuál es la ventaja de usar un recurso @font/roboto en lugar de poner la fuente directamente desde una ruta absoluta?

a)

Mejora el rendimiento del compilador

b)

Facilita la reutilización y centraliza la gestión de la tipografía en recursos

c)

Evita usar TextView

d)

Permite cambiar de fuente solo en tiempo de ejecución

80.

En un TextView, ¿qué combinación de atributos es más coherente para mostrar un título centrado, con tamaño grande y en mayúsculas automáticas?

a)

textSize="24sp", gravity="center", textAllCaps="true"

b)

textSize="24dp", layout_gravity="center", textAllCaps="false"

c)

textSize="24px", gravity="left", textAllCaps="true"

d)

textSize="wrap_content", gravity="center_vertical"

81.

¿Cuál es la característica principal de RelativeLayout frente a otros contenedores como LinearLayout?

a)

Coloca los hijos en columnas y filas fijas

b)

Posiciona las vistas hijas en relación al padre o a otros hermanos

c)

Solo admite un hijo como máximo

d)

No permite márgenes ni padding

82.

¿En qué casos no se recomienda usar RelativeLayout y se prefiere ConstraintLayout?

a)

Formularios muy simples con dos campos

b)

Diseños complejos y responsivos que requieren alto rendimiento

c)

Pantallas sin texto

d)

Listas con RecyclerView

83.

¿Qué atributo es imprescindible en una vista hija si quieres que otras vistas del RelativeLayout puedan referenciarla en reglas como layout_below?

a)

android:tag

b)

android:name

c)

android:id

d)

android:label

84.

¿Cuál de estos atributos alinea un hijo al borde superior del padre RelativeLayout?

a)

android:layout_alignParentTop="true"

b)

android:layout_alignTop="@id/parent"

c)

android:layout_toStartOf="@id/top"

d)

android:layout_centerVertical="true"

85.

¿Qué ventaja tiene usar layout_toStartOf y layout_toEndOf frente a layout_toLeftOf y layout_toRightOf?

a)

Son más cortos de escribir

b)

Hacen que el layout ignore los márgenes

c)

Permiten soporte correcto para idiomas RTL

d)

Evitan la necesidad de android:id en las vistas

86.

¿Qué atributo centra una vista justo en el eje horizontal del padre, sin afectar al eje vertical?

a)

android:layout_centerHorizontal="true"

b)

android:layout_centerVertical="true"

c)

android:gravity="center_horizontal"

d)

android:layout_alignParentStart="true"

87.

¿Cuál de estas combinaciones puede generar comportamientos extraños si el ancho es wrap_content?

a)

alignParentStart="true" y alignParentTop="true"

b)

centerHorizontal="true" y centerVertical="true"

c)

alignParentStart="true" y alignParentEnd="true"

d)

below y marginTop

88.

En un RelativeLayout con un TextView con layout_centerHorizontal="true" y layout_alignParentTop="true", ¿dónde se colocará?

a)

Esquina superior-inicio

b)

Esquina superior-fin

c)

Centrado horizontalmente, pegado a la parte superior

d)

Centrada exactamente en la pantalla

89.

¿Qué hace el atributo android:layout_alignBaseline="@id/otro"?

a)

Alinea la parte superior de ambas vistas

b)

Alinea la parte inferior de ambas vistas

c)

Alinea la línea base del texto de dos vistas con texto

d)

No tiene efecto en TextView

90.

¿Qué diferencia hay entre layout_centerInParent="true" y combinar layout_centerHorizontal="true" + layout_centerVertical="true"?

a)

Son equivalentes

b)

centerInParent solo centra verticalmente

c)

centerInParent requiere márgenes

d)

centerInParent solo funciona con match_parent

91.

¿Qué atributo se usa para pegar una vista al borde inferior del padre en RelativeLayout?

a)

layout_toEndOf

b)

layout_alignParentBottom

c)

layout_below

d)

layout_alignBottom

92.

Dado este XML: ¿Qué relación tiene subtitulo con título?

a)

Se coloca a la derecha

b)

Se coloca debajo y alineado al inicio con título

c)

Se coloca a la izquierda y centrado verticalmente

d)

Se coloca en el centro del padre

93.

¿Qué atributo usarías para colocar una vista A a la derecha lógica de una vista B?

a)

layout_toEndOf="@id/B"

b)

layout_toRightOf="@id/B" (recomendado)

c)

layout_alignEnd="@id/B"

d)

layout_below="@id/B"

94.

En una tarjeta de perfil (avatar, nombre, botón Seguir), si el botón se sitúa a la derecha del avatar, ¿qué regla se usa para esa posición horizontal?

a)

layout_toStartOf="@id/avatar"

b)

layout_toEndOf="@id/avatar"

c)

layout_alignBottom="@id/avatar"

d)

layout_below="@id/avatar"

95.

Cuando se crea una vista desde código para añadirla a un RelativeLayout, ¿qué tipo de LayoutParams utilizar?

a)

LinearLayout.LayoutParams

b)

FrameLayout.LayoutParams

c)

RecyclerView.LayoutParams

d)

RelativeLayout.LayoutParams

96.

En este código de Kotlin para un TextView en RelativeLayout: val params = RelativeLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT).apply { addRule(RelativeLayout.ALIGN_PARENT_TOP) addRule(RelativeLayout.CENTER_HORIZONTAL) } ¿Dónde se coloca el TextView?

a)

Centro exacto del padre

b)

Esquina superior-inicio

c)

Esquina superior-fin

d)

Pegado arriba y centrado horizontalmente

97.

¿Qué sucede si a una vista se le aplica layout_below="@id/A" y también layout_alignTop="@id/A"?

a)

Es una combinación coherente

b)

Las reglas se contradicen y pueden generar resultados imprevisibles

c)

Android ignora ambas reglas

d)

El compilador no permite compilar

98.

¿Qué atributo se utiliza para alinear verticalmente el borde superior de una vista con el de otra vista dentro del mismo RelativeLayout?

a)

layout_alignTop="@id/otro"

b)

layout_alignStart="@id/otro"

c)

layout_toEndOf="@id/otro"

d)

layout_centerVertical="true"

99.

En un RelativeLayout, ¿qué combinación de reglas colocarían una vista B debajo de A y alineada a su final (derecha lógica)?

a)

below="@id/A" + alignStart="@id/A"

b)

above="@id/A" + alignEnd="@id/A"

c)

below="@id/A" + alignEnd="@id/A"

d)

toEndOf="@id/A" + alignTop="@id/A"

100.

¿Cuál de estas afirmaciones refleja mejor el uso recomendado de RelativeLayout hoy en día?

a)

Debe usarse siempre en lugar de cualquier otro contenedor

b)

Es ideal para UIs muy complejas y animadas

c)

Se sigue usando en interfaces simples o heredadas, pero para diseños complejos se prefiere ConstraintLayout

d)

Está obsoleto y ya no se puede usar

101.

¿Cuál es la función principal de una Guideline en ConstraintLayout?

a)

Mostrar una línea visible de división

b)

Servir como referencia invisible para posicionar otras vistas mediante constraints

c)

Reemplazar al LinearLayout

d)

Crear automáticamente márgenes iguales

102.

¿Qué atributo define si una Guideline es vertical u horizontal?

a)

android:orientation

b)

app:layout_constraintGuide_orientation

c)

tools:orientation

d)

Se infiere automáticamente

103.

¿Qué valor de android:orientation debe tener una Guideline que divide la pantalla en izquierda/derecha?

a)

horizontal

b)

vertical

c)

diagonal

d)

center

104.

Dado este XML de Guideline vertical al 25%: app:layout_constraintGuide_percent="0.25" ¿Dónde se coloca?

a)

Al 25% de la altura del padre

b)

Al 25% del ancho del padre desde la izquierda

c)

Al 25% del ancho desde la derecha

d)

En el centro

105.

¿Qué diferencia hay entre layout_constraintGuide_percent y layout_constraintGuide_begin?

a)

percent usa porcentaje del tamaño del padre; begin usa desplazamiento fijo desde el borde inicial

b)

percent es solo para horizontales; begin, solo verticales

c)

begin es más preciso que percent

d)

Son sinónimos

106.

¿Qué indica app:layout_constraintGuide_begin="16dp" en una Guideline vertical?

a)

16dp desde el borde superior

b)

16dp desde el borde izquierdo

c)

16dp de margen global

d)

16dp de ancho

107.

En móvil y tablet, ¿qué ventaja tiene una Guideline con percent=0.5 frente a begin="200dp"?

a)

Mantiene la posición proporcional en cualquier tamaño de pantalla

b)

begin se escala automáticamente; percent no

c)

No hay ventaja

d)

begin es solo para teléfonos

108.

Para anclar un TextView justo a la derecha de una Guideline vertical llamada guideline25, ¿qué constraint usas?

a)

Start_toEndOf="@id/guideline25"

b)

End_toStartOf="@id/guideline25"

c)

Top_toBottomOf="@id/guideline25"

d)

Bottom_toTopOf="@id/guideline25"

109.

¿Qué ocurre si anclas la izquierda de un botón a una Guideline vertical y la derecha al borde del padre con ancho 0dp?

a)

El botón colapsa

b)

El botón ocupa todo el espacio entre la Guideline y el borde derecho

c)

El botón se centra

d)

Android lanza una excepción

110.

¿Qué ventaja tienen las Guidelines para construir un diseño tipo grid?

a)

Reducen en tiempo de ejecución el número de vistas

b)

Sirven de columnas y filas invisibles reutilizables por muchas vistas

c)

Obligan a usar porcentajes

d)

Permiten animar el layout automáticamente

111.

¿Qué atributo fija una Guideline a una distancia desde el borde final del padre?

a)

layout_constraintGuide_end

b)

layout_constraintGuide_toEnd

c)

layout_marginEnd

d)

layout_constraintGuide_reverse

112.

Guideline horizontal con layout_constraintGuide_end="64dp". ¿Dónde se coloca?

a)

64dp desde el borde superior

b)

Al 64% de la altura

c)

64dp desde el borde inferior

d)

Es inválido

113.

¿Qué layout_width y layout_height se suele usar en una Guideline?

a)

match_parent

b)

wrap_content

c)

0dp

d)

Es obligatorio match_parent

114.

¿Qué sucede si constriñes una vista entre dos Guidelines verticales y ancho 0dp?

a)

Ancho 0

b)

Ancho mínimo del texto

c)

Ancho estirado para ocupar el espacio entre ambas

d)

Vista fuera de la pantalla

115.

En ConstraintLayout, ¿qué significa 0dp como tamaño cuando una vista tiene constraints a ambos lados horizontal?

a)

Se calcula automáticamente según los constraints

b)

Mide siempre 0 píxeles

c)

Ignora los constraints laterales

d)

Se comporta como wrap_content

116.

¿Se puede animar la posición de una Guideline (porcentaje) para crear un efecto de panel deslizante?

a)

No

b)

Sí, cambiando su percent dinámicamente en código

c)

Solo en XML

d)

Solo en Compose

117.

Si defines una Guideline vertical al 50% y quieres centrar un ImageView respecto a ella, ¿qué problema hay?

a)

Ninguno

b)

ConstraintLayout no permite centrar con Guideline

c)

El “centro” respecto a una línea no tiene sentido; solo puedes anclar start/end

d)

La Guideline se convierte en barrera

118.

¿Qué herramienta de Android Studio facilita crear Guidelines arrastrando desde el borde del layout?

a)

Layout Inspector

b)

Constraints Panel

c)

Design Surface con “Add Guideline”

d)

Palette Manager

119.

¿Cuál de estas afirmaciones sobre Guidelines es correcta?

a)

Pueden tener hijos dentro de ellas

b)

No son contenedores; son pseudo‑vistas sin contenido

c)

Solo funcionan en modo paisaje

d)

Deben declararse siempre al final del XML

120.

En un formulario, colocas una Guideline vertical al 30% y alineas etiquetas a la izquierda y campos a la derecha. ¿Qué beneficio obtienes?

a)

Texto centrado automáticamente

b)

Alineación consistente sin calcular márgenes distintos para cada fila

c)

Evitas usar IDs

d)

El formulario se adapta solo a modo oscuro

121.

¿Qué tipo de Guideline usarías para definir una franja superior reservada para un toolbar de 56dp de altura fija?

a)

Horizontal percent="0.1"

b)

Horizontal begin="56dp"

c)

Vertical begin="56dp"

d)

Vertical end="56dp"

122.

¿Qué ocurre si no le asignas id a una Guideline?

a)

No compila

b)

Existe pero no puede ser referenciada por otras vistas

c)

Se genera un id automático

d)

Se comporta como un Space

123.

¿Qué combinación define correctamente una Guideline vertical a porcentaje, compatible con RTL?

a)

orientation="vertical", percent="0.3"

b)

orientation="horizontal", percent="0.3"

c)

orientation="vertical", begin="30%"

d)

orientation="vertical", end="30%"

124.

En diseño responsive, defines dos Guidelines verticales en 0.25 y 0.75 y una tarjeta entre ellas (ancho 0dp). ¿Qué pasa al rotar a landscape?

a)

La tarjeta mantiene su ancho relativo (50% central)

b)

La tarjeta se contrae a 0

c)

La tarjeta se sale de la pantalla

d)

Hay que recalcular los porcentajes

125.

¿Es posible mezclar Guidelines definidas por percent con otras definidas por begin en el mismo ConstraintLayout?

a)

No

b)

Sí, pero solo si son horizontales

c)

Sí, se pueden combinar según el diseño

d)

Sí, pero Android ignora las de percent

126.

¿Qué diferencia práctica hay entre usar márgenes grandes y una Guideline para “dejar un margen” izquierdo?

a)

Los márgenes son más precisos

b)

Las Guidelines permiten anclar muchas vistas a la misma referencia; el margen es local a cada vista

c)

Los márgenes no funcionan con ConstraintLayout

d)

Las Guidelines consumen más rendimiento

127.

¿Qué error conceptual comete un alumno si crea una Guideline vertical y luego intenta meter un Button “dentro de ella” en el XML?

a)

Olvida poner match_parent

b)

Confunde Guideline (referencia) con ViewGroup (contenedor)

c)

Usa mal el namespace app:

d)

No usa android:id en el Button

128.

En un examen te piden: “Coloca una Guideline horizontal al 40% y alinea un TextView justo debajo de la Guideline”. ¿Qué constraints verticales necesita el TextView?

a)

Top_toTopOf="@id/guideline40"

b)

Bottom_toTopOf="@id/guideline40"

c)

Top_toBottomOf="@id/guideline40"

d)

Bottom_toBottomOf="@id/guideline40"

129.

¿Cuál de estas frases explica mejor cuándo tiene sentido no usar Guideline y usar directamente constraints entre vistas?

a)

Siempre es obligatorio usar Guideline

b)

Si solo tienes dos vistas y una debe ir debajo de la otra, las constraints directas son suficientes

c)

Cuando el diseño es muy complejo

d)

Cuando se quiere soportar tablets