Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gestion de Eventos
Gestion de Eventos
de Android
GESTIÓN DE EVENTOS
Ejercicio 1
• Reproducir el ejercicio de clase con la botonera (4 botones) y el evento onClick con las 3 técnicas
• En base al punto anterior, aplicar al botón 2 un EventListener para el evento OnLongClickListener
• Para los botones 3 y 4 aplicar el EventHandler para el evento OnLongClickListener
Diseño:
Código:
ackage com.example.eventosconclicklargo; import android.view.View;
import android.widget.Button;
import android.os.Bundle; import android.widget.Toast;
import android.view.View.OnClickListener; onLongClick(View v) {
import onButtonLongClick2();
android.view.View.OnLongClickListener; return true;
import }
androidx.appcompat.app.AppCompatActivity; });
super.onCreate(savedInstanceState); button3.setOnLongClickListener(button3Long
ClickHandler);
setContentView(R.layout.activity_main);
// Clic corto con evento handler
Button button1 =
findViewById(R.id.button1); button4.setOnClickListener(button4ClickHan
Button button2 = dler);
findViewById(R.id.button2);
Button button3 = // Clic largo con evento handler
findViewById(R.id.button3);
Button button4 = button4.setOnLongClickListener(button4Long
findViewById(R.id.button4); ClickHandler);
}
// Clic corto con OnClickListener
button1.setOnClickListener(new // Método para mostrar mensajes en
OnClickListener() { Toast
@Override private void showMessage(String
public void onClick(View v) { message) {
showMessage("Botón 1 - Toast.makeText(this, message,
Clic corto con OnClickListener"); Toast.LENGTH_SHORT).show();
} }
});
// Método de evento para el botón 2
// Clic largo con (clic corto)
OnLongClickListener private void onButtonClick2() {
button1.setOnLongClickListener(new showMessage("Botón 2 - Clic corto
OnLongClickListener() { con método de EventListener");
@Override }
public boolean
onLongClick(View v) { // Método de evento para el botón 2
showMessage("Botón 1 - (clic largo)
Clic largo con OnLongClickListener"); private void onButtonLongClick2() {
return true; showMessage("Botón 2 - Clic largo
} con método de EventListener");
}); }
// Clic corto con método de evento // Event handler para el botón 3 (clic
button2.setOnClickListener(new corto)
View.OnClickListener() { private View.OnClickListener
@Override button3ClickHandler = new
public void onClick(View v) { View.OnClickListener() {
onButtonClick2(); @Override
} public void onClick(View v) {
}); showMessage("Botón 3 - Clic
corto con EventHandler");
// Clic largo con método de evento }
button2.setOnLongClickListener(new };
View.OnLongClickListener() {
@Override // Event handler para el botón 3 (clic
public boolean largo)
private View.OnLongClickListener corto con EventHandler");
button3LongClickHandler = new }
View.OnLongClickListener() { };
@Override
public boolean onLongClick(View v) // Event handler para el botón 4 (clic
{ largo)
showMessage("Botón 3 - Clic private View.OnLongClickListener
largo con EventHandler"); button4LongClickHandler = new
return true; View.OnLongClickListener() {
} @Override
}; public boolean onLongClick(View v)
{
// Event handler para el botón 4 (clic showMessage("Botón 4 - Clic
corto) largo con EventHandler");
private View.OnClickListener return true;
button4ClickHandler = new }
View.OnClickListener() { };
@Override }
public void onClick(View v) {
showMessage("Botón 4 - Clic
Capturas
Ejercicio 2
• Crear un proyecto donde integre una pantalla de acceso (usuario- password y el botón de acceso)
• Programar el botón con alguna de las técnicas vistas en el ejercicio
• Simular la validación de los datos a través de una condicional, si los datos son correctos que aparezca en un
mensaje toast de datos correctos, de otra manera deberá indicar validar datos y borrar las cajas de texto.
Diseño
Código:
package com.example.myapplication; import
import android.content.Intent; androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils; public class MainActivity extends
import android.view.View; AppCompatActivity {
import android.widget.Button;
import android.widget.EditText; private EditText editTextUsuario;
private EditText editTextPassword;
import android.widget.ImageView;
import android.widget.Toast;
@Override
protected void onCreate(Bundle Intent intent = new
savedInstanceState) { Intent(MainActivity.this,
MainActivity2.class);
super.onCreate(savedInstanceState); startActivity(intent);
String usuario =
editTextUsuario.getText().toString().trim( // Método para marcar las Texto en
); color rojo
String password = private void
editTextPassword.getText().toString().trim markFieldAsInvalid(EditText editText) {
();
editText.setTextColor(getResources().getCo
if (TextUtils.isEmpty(usuario) lor(android.R.color.holo_red_light));
&& TextUtils.isEmpty(password)) { }
mostrarMensaje("Por favor,
ingrese nombre de usuario y contraseña");
// Método para mostrar mensajes
markFieldAsInvalid(editTextUsuario); Toast
private void mostrarMensaje(String
markFieldAsInvalid(editTextPassword); mensaje) {
} else if
(TextUtils.isEmpty(usuario)) { Toast.makeText(MainActivity.this, mensaje,
mostrarMensaje("Por favor, Toast.LENGTH_SHORT).show();
ingrese el nombre de usuario"); }
markFieldAsInvalid(editTextUsuario);
} else if // Método para limpiar los campos
(TextUtils.isEmpty(password)) { de texto
mostrarMensaje("Por favor, private void limpiarCampos() {
ingrese la contraseña");
editTextUsuario.getText().clear();
markFieldAsInvalid(editTextPassword);
} else if editTextPassword.getText().clear();
(usuario.equals("Onofre") && }
password.equals("1234")) { }
// Aquí implementa tu }
lógica de inicio de sesión si ambos campos
están llenos
// Lanzar SecondActivity
Capturas