Red de conocimiento informático - Espacio del host - Código fuente del calendario del calendario móvil

Código fuente del calendario del calendario móvil

No hables de construcción ambiental, solo habla de desarrollo.

Los puntos clave para desarrollar un pequeño programa de despertador son:

1. Selector de hora

2. Consigue el administrador de despertador y configúralo.

3. Registre el receptor de transmisión

Después de dominar estos dos puntos, escribir un programa es muy sencillo.

1. Nuevo proyecto de Android: Alarma, SDK versión 2.2, nombre del paquete: com.lql.activity, actividad principal: Alarma.

2. Interfaz de escritura: modifique directamente el archivo main.xml en el diseño, el código es el siguiente:

¿Código XML?

<? ¿xml? versión="1.0 "? codificación = "utf-8"? & gt

& ltLinearLayout? xmlns:Android = "/apk/RES/Android "

android:orientation="vertical "

Android:layout _ width = " fill _ parent "

Android:layout _ height = " fill _ parent "

Android:gravity = " center _ vertical "

& gt

& botón lt

android:id="@+id/timeBtn "

Android:layout _ width = " fill _ parent "?

Android:layout_height = " wrap_content "?

android:text="@string/time "

android:textSize="20sp "

/& gt;

& botón lt

Android:id = " @+id/cancelAlarmBtn "

Android:layout _ width = " fill _ parent "?

Android:layout_height = " wrap_content "?

Android:text = " @ string/cancelar alarma "

/& gt;

& lt/diseño lineal & gt;

El efecto de la interfaz es el siguiente:

3. Para modificar la actividad de Alarm.java, debe hacer varias cosas en la actividad:

Activar dos componentes de botón. la interfaz y vincular detectores de eventos a ellos.

Haga clic en el botón de la primera hora y aparecerá un selector de hora que le permitirá seleccionar horas y minutos y configurar una alarma.

El segundo botón requiere el despertador configurado actualmente después de hacer clic en él.

El código más difícil de escribir es la configuración del despertador:

//Establecer la hora

Código Java

timeBtn.setOnClickListener (¿Nuevo? Botón .OnClickListener(){

@Override ? onClick(view?arg0)?{

Log.d(etiqueta, ?" ¿Eso? ¿Tiempo? ¿Dónde? ¿establecer? time");

calendar.settimeinmillis();

New?TimePickerDialog(Alarm.this ,new?TimePickerDialog.

¿OnTimeSetListener()? {

@cover

¿Público? ¿Vacío? onTimeSet(TimePicker?arg0,?int?h,?int?m)? {

//Actualizar la hora en el botón

timeBtn.setText(formatTime(h, m));

//Establecer la hora del calendario, principalmente Sincroniza la fecha del calendario con la fecha actual.

calendar . settimeinmillis(system . current time millis());

//Establece las horas y minutos del calendario.

calendar.set(calendar.hora del día?h);

calendar.set(calendar.minuto,?m);

/ / Establecer segundos y milisegundos a 0.

calendar.set(calendar.segundo,?0);

calendar.set(calendar.millisegundo,?0);

//Crear intención y PendingIntent para llamar al administrador de alarmas.

¿Intención? ¿intención? =?Nuevo? Intent(Alarm.this, alarm Receiver. class);

¿Contenido pendiente? ¿Contenido pendiente? =?contenido pendiente. obtener transmisión (alarma. esto,? 0,? intención? 0);

//Obtener el administrador de alarmas

¿AlarmManager? ¿Administrador de alarmas? =?(ALARM manager)getsystem SERVICE(ALARM _ SERVICE);

//Establecer despertador

alarmManager.set(AlarmManager.RTC_WAKEUP,?calendar.getTimeInMillis(),?pendingIntent ) ;

administrador de alarmas.establecer repetición (administrador de alarmas.RTC_WAKEUP,?calendar.getTimeInMillis(),?10*1000,?pendingIntent);

Toast.makeText(Alarm.this , ? "El tiempo para configurar la alarma es:"+cadena valor de(h)+":"+cadena valor de(m),? show();

Log.d(label,? "¿Configuración? ¿Eso? ¿Hora? ¿A?" + formatTime(h, m));

}

}, calendario.get(Calendario.HOUR_OF_DAY), calendario.get(Calendario.minutos), verdadero). show();

}

});

Hay comentarios en el código, así que no los explicaré aquí. El nuevo cuadro de diálogo del selector de hora se crea como un cuadro de diálogo del selector de hora. Para ver el efecto, agregué un recordatorio repetido al despertador: Alarm Clock Manager. setRepeat(alarmmanager.rtc_wakeup,calendar.gettimeinmillis(),10*1000,pending_intent);.

Agregue también un detector de eventos para el botón cancelar alarma:

Código Java

//Cancelar monitoreo de eventos del botón de alarma

¿Final? ¿Botón? cancelarAlarmBtn? =?(Botón)findViewById(r . id . cancelaralarmbtn);

cancelalarmbtn .

OnClickListener(){

@OVERRIDE

¿Público? ¿Vacío? onClick(ver?arg0)? {

¿Intención? ¿intención? =?Nuevo? Intent(Alarm.this, alarm Receiver. class);

¿Contenido pendiente? ¿Contenido pendiente? =?contenido pendiente. obtener transmisión (alarma. esto,? 0,? intención? 0);

//Obtener el administrador de alarmas

¿AlarmManager? ¿Administrador de alarmas? =?(Administrador de ALARMAS)getsystem SERVICE(ALARM _ SERVICE);

administrador de alarmas cancelar(contenido pendiente);

Toast.makeText(Alarma.this,? "¡Alarma cancelada! ",? Brindis.LENGTH_SHORT). show();

}

});

Haga clic en el botón cancelar alarma para cancelar la alarma configurada previamente. El código principal es de 4 líneas.

4. Escriba un receptor de transmisión para recibir el evento de transmisión del despertador y luego realice el procesamiento relacionado.

Código Java

¿Público? ¿clase? ¿Receptor de alarma? ¿extender? ¿Receptor de transmisión? {

/*?(no Javadoc)?

*?@¿Lo viste? Contenido de Android. Receptor de transmisión # en recepción (Android. Contenido. Contexto, Android.content.Intent).

*/

@cover

¿Público? ¿Vacío? onReceive(contexto?arg0,?intención?datos)? {

Log.d(Alarma. Etiqueta,? "¿Esa? ¿Hora? ¿En serio? ¿Levantarse, empezar? ¿Eso? Alarma...");

Toast.makeText(arg0 , "¡Hora de alarma!",?LENGTH_SHORT). show();

}

}

Este código es muy simple, ¿principalmente para herencia? BroadcastReceiver y luego anule el método onRecive. El método onRecive se ejecutará una vez que expire el tiempo de alarma. Aquí podremos hacer nuestras propias cosas, como iniciar programas o reproducir tonos de llamada. Sólo quiero recordarles rápidamente que las tostadas son para usar.

5. Registre el receptor de transmisión en el archivo AndroidManifest.xml de Android:

& lt manifest xmlns:Android = "/apk/RES/Android"

¿Código XML?

package="com.ql.activity "

android:versionCode="1 "

Android:nombre de versión = " 1.0 " & gt;

p>

& lt¿Aplicar? android:icono="@drawable/icono "? Android:label = " @ string/app _ nombre " >

<Receiver? android:nombre= ".AlarmReceiver"? android:proceso=":remoto "? /& gt;

& ltActividad? android:nombre= ".

alert"

Android:label = "@string/app_name" >

<Intent Filter>

<Action? Android :name = "Acción de intención de Android. main "? /& gt;

<Categoría?

& lt/intent-filter>

& lt/actividad>

& lt/aplicación>

& ltPurpose -sdk?android:minSdkVersion="8"?

</manifest>?

La configuración principal es

Se prueba en el simulador y la captura de pantalla en ejecución se muestra en el archivo adjunto

.