Desarrollo en Android - Eventos y Mensajes (AlertDialog)
Cuando se esta desarrollando una App, y se desea que sea interactiva se utilizan los eventos, que son las acciones que ocurren en la aplicación, como pueden ser Click, LongClick, Touch, etc. Dependiendo de lo que se desee hacer se elige el evento más adecuado.
En este tutorial se muestra como atrapar los eventos Click, y mostrar un mensaje como resultado de este evento.
1. Para este proyecto se diseña una UI (Interfaz de usuario) que tenga un botón, que al presionarlo muestre un mensaje al usuario.
xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="mx.blogspot.salvadorhm.eventos.MainActivity">
<Button
android:id="@+id/btnPressMe"
android:text="@string/pressMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="mx.blogspot.salvadorhm.eventos.MainActivity">
<Button
android:id="@+id/btnPressMe"
android:text="@string/pressMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
2. Para poder mostrar Mensajes al usuario, se utiliza un AlertDialog, y se construye un objeto de esta clase. Para facilitar este proceso se crea un método que reciba como parámetros el título del mensaje y el texto que se quiere mostrar al usuario, para posteriormente llamar al método tantas veces como sea necesario.
private void Message(String title, String message){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.show();
}
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.show();
}
3. En el método que se ejecuta al hacer click en el botón btnPressMe se llama al método antes creado y se le envian los parámetros deseados.
private void btnPressMe_OnClick(){
Message("Button","Hello World");
}
Message("Button","Hello World");
}
4. A continuación se muestra el código completo.
package mx.blogspot.salvadorhm.eventos;
import android.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button btnPressMe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPressMe = (Button)findViewById(R.id.btnPressMe);
btnPressMe.setOnClickListener(onClickListener);
}
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if(v == btnPressMe)
btnPressMe_OnClick();
}
};
private void btnPressMe_OnClick(){
Message("Button","Hello World");
}
private void Message(String title, String message){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.show();
}
}
import android.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button btnPressMe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPressMe = (Button)findViewById(R.id.btnPressMe);
btnPressMe.setOnClickListener(onClickListener);
}
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if(v == btnPressMe)
btnPressMe_OnClick();
}
};
private void btnPressMe_OnClick(){
Message("Button","Hello World");
}
private void Message(String title, String message){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.show();
}
}
5. El resultado se muestra a continuación, al hacer tap en cualquier otra parte de la pantalla el mensaje se ocultará de forma automática.
Comentarios