23. EFormulario

Versión para imprimir.

A. Instrucciones

Vista de Formulario
Formulario con datos
Formulario muestra resultados

Pasos a seguir

  1. Crear un proyecto para phone & tablet de tipo Empty Activity. Video sobre como crear el proyecto.

  2. Las aplicaciones se pueden correr sobre un dispositivo real habilitado para desarrollo o en un emulador dentro de la computadora de desarrollo. En este último caso, si no tienes configurado un emulador, hay que crearlo. Video sobre como crear el emulador.

  3. Modifica el proyecto con el contenido de los archivos que se muestran en esta lección.

  4. Ejecuta el proyecto sobre el emulador de teléfono o el dispositivo real. Video sobre como ejecutar el proyecto.

B. Archivos

C. app/res/values/strings.xml

<resources>
 <string
   name="app_name">Formulario</string>
 <string
   name="saludar">Saludar</string>
 <string
   name="nombre">Nombre</string>
</resources>

D. app/res/layout/activity_main.xml

Diseño de vista de Formulario
Diseño de vista de Formulario
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
  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"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity">

 <Button
   android:id="@+id/button"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_marginTop="16dp"
   android:text="@string/saludar"
   app:layout_constraintEnd_toEndOf="parent"
   app:layout_constraintHorizontal_bias="0.535"
   app:layout_constraintStart_toStartOf="parent"
   app:layout_constraintTop_toBottomOf="@+id/textInputLayout" />

 <com.google.android.material.textfield.TextInputLayout
   android:id="@+id/textInputLayout"
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:layout_marginStart="16dp"
   android:layout_marginTop="16dp"
   android:layout_marginEnd="16dp"
   android:layout_marginBottom="16dp"
   app:layout_constraintBottom_toTopOf="@+id/button"
   app:layout_constraintEnd_toEndOf="parent"
   app:layout_constraintStart_toStartOf="parent"
   app:layout_constraintTop_toTopOf="parent">

  <com.google.android.material.textfield.TextInputEditText
    android:id="@+id/nombre"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/nombre" />
 </com.google.android.material.textfield.TextInputLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

E. app/java/io.github.gilpgdam.formulario/MainActivity.kt

package io.github.gilpgdam.formulario

import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.snackbar.Snackbar

class MainActivity :
 AppCompatActivity() {
 override fun onCreate(
  savedInstanceState: Bundle?
 ) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.activity_main)
  val txtNombre =
   findViewById<EditText>(R.id.nombre)
  val button =
   findViewById<Button>(R.id.button)
  button.setOnClickListener { view ->
   val nombre =
    txtNombre.text.toString()
   Snackbar.make(
    view,
    "Hola $nombre.",
    Snackbar.LENGTH_LONG
   ).show()
  }
 }
}

F. app/manifest/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest
  xmlns:android="http://schemas.android.com/apk/res/android"
  package="io.github.gilpgdam.formulario">

 <application
   android:allowBackup="true"
   android:icon="@mipmap/ic_launcher"
   android:label="@string/app_name"
   android:roundIcon="@mipmap/ic_launcher_round"
   android:supportsRtl="true"
   android:theme="@style/Theme.Formulario">
  <activity
    android:name=".MainActivity"
    android:exported="true">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
 </application>

</manifest>