Ejemplo de Dialogs y Pickers. Curso de desarrollo de aplicaciones Android
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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:id="@+id/activity_main" | |
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" | |
android:orientation="vertical" | |
tools:context="tech.alvarez.ejemplopickers.MainActivity"> | |
<Button | |
android:text="@string/seleccionar_hora" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:onClick="seleccionarHora" | |
/> | |
<Button | |
android:text="@string/selecciona_fecha" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:onClick="seleccionarFecha" | |
/> | |
<Button | |
android:text="@string/abrir_dialogo" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:onClick="abrirDialogo" | |
/> | |
</LinearLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tech.alvarez.ejemplopickers; | |
import android.app.DatePickerDialog; | |
import android.app.Dialog; | |
import android.app.TimePickerDialog; | |
import android.content.DialogInterface; | |
import android.support.annotation.NonNull; | |
import android.support.v4.app.DialogFragment; | |
import android.support.v7.app.AlertDialog; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.text.format.DateFormat; | |
import android.view.View; | |
import android.widget.DatePicker; | |
import android.widget.TimePicker; | |
import android.widget.Toast; | |
import java.util.Calendar; | |
public class MainActivity extends AppCompatActivity { | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
} | |
public void seleccionarHora(View view) { | |
TimerPickerFragment timerPickerFragment = new TimerPickerFragment(); | |
timerPickerFragment.show(getSupportFragmentManager(), "timePicker"); | |
} | |
public void seleccionarFecha(View view) { | |
DatePickerFragment datePickerFragment = new DatePickerFragment(); | |
datePickerFragment.show(getSupportFragmentManager(), "datePicker"); | |
} | |
public void abrirDialogo(View view) { | |
MiDialogFragment miDialogFragment = new MiDialogFragment(); | |
miDialogFragment.show(getSupportFragmentManager(), "miDialog"); | |
} | |
public static class TimerPickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { | |
@NonNull | |
@Override | |
public Dialog onCreateDialog(Bundle savedInstanceState) { | |
Calendar fechaActual = Calendar.getInstance(); | |
int hora = fechaActual.get(Calendar.HOUR_OF_DAY); | |
int minuto = fechaActual.get(Calendar.MINUTE); | |
return new TimePickerDialog(getActivity(), this, hora, minuto, DateFormat.is24HourFormat(getActivity())); | |
} | |
@Override | |
public void onTimeSet(TimePicker timePicker, int i, int i1) { | |
Toast.makeText(getActivity(), "Selecciono " + i + ":" + i1, Toast.LENGTH_LONG).show(); | |
} | |
} | |
public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { | |
@NonNull | |
@Override | |
public Dialog onCreateDialog(Bundle savedInstanceState) { | |
Calendar fechaActual = Calendar.getInstance(); | |
int anio = fechaActual.get(Calendar.YEAR); | |
int mes = fechaActual.get(Calendar.MONTH); | |
int dia = fechaActual.get(Calendar.DAY_OF_MONTH); | |
return new DatePickerDialog(getActivity(), this, anio, mes, dia); | |
} | |
@Override | |
public void onDateSet(DatePicker datePicker, int anio, int mes, int dia) { | |
Toast.makeText(getActivity(), "Selecciono: " + dia + "/" + mes + "/" + anio, Toast.LENGTH_SHORT).show(); | |
} | |
} | |
public static class MiDialogFragment extends DialogFragment { | |
@NonNull | |
@Override | |
public Dialog onCreateDialog(Bundle savedInstanceState) { | |
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); | |
builder.setTitle("Qué lenguaje conoces?"); | |
// builder.setMessage("Si no guarda los cambios se perderán"); | |
builder.setPositiveButton("Guardar", new DialogInterface.OnClickListener() { | |
@Override | |
public void onClick(DialogInterface dialogInterface, int i) { | |
Toast.makeText(getActivity(), "Se guardo correctamente", Toast.LENGTH_SHORT).show(); | |
} | |
}); | |
builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() { | |
@Override | |
public void onClick(DialogInterface dialogInterface, int i) { | |
Toast.makeText(getActivity(), "Operación cancelada", Toast.LENGTH_SHORT).show(); | |
} | |
}); | |
// items | |
// builder.setItems(R.array.planetas, new DialogInterface.OnClickListener() { | |
// @Override | |
// public void onClick(DialogInterface dialogInterface, int i) { | |
// Toast.makeText(getActivity(), "Usted presionó " + i, Toast.LENGTH_SHORT).show(); | |
// } | |
// }); | |
// Seleccion Multiple | |
builder.setMultiChoiceItems(R.array.lenguajes, null, new DialogInterface.OnMultiChoiceClickListener() { | |
@Override | |
public void onClick(DialogInterface dialogInterface, int i, boolean b) { | |
Toast.makeText(getActivity(), "Usted selecciono " + i + " " + b, Toast.LENGTH_SHORT).show(); | |
} | |
}); | |
return builder.create(); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<resources> | |
<string name="app_name">EjemploPickers</string> | |
<string name="seleccionar_hora">Seleccionar Hora</string> | |
<string name="selecciona_fecha">Selecciona fecha</string> | |
<string name="abrir_dialogo">Abrir dialogo</string> | |
<string-array name="planetas"> | |
<item>Marte</item> | |
<item>Tierra</item> | |
<item>Saturno</item> | |
<item>Plutón</item> | |
</string-array> | |
<string-array name="lenguajes"> | |
<item>Java</item> | |
<item>Swift</item> | |
<item>C Sharp</item> | |
</string-array> | |
</resources> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment