最近做闹钟,所以自己写了个Demo版本,这个程序是用listview单独的类来实现的,和activity类分开来实现的!这个是用数据库进行更新的,当闹钟设置后,闹钟图片变成闹钟的样子,闹钟取消后,图片变成灰色的闹钟,这个是用ListView来实现数据库更新数据的!然后弹对话框来实现时间的设置和周几重复的功能,这个功能能实现,我测试了!正确无误!需要注意的地方有两个:listview每次滑动的时候,记得设置背景为透明, mAlarmListView.setCacheColorHint(0);另一个是利用Intent传递广播的Intent的时候,传参数的时候,记得设置PendingIntent sender=PendingIntent.getBroadcast(context,0, intent1, PendingIntent.FLAG_UPDATE_CURRENT);的PendingIntent.FLAG_UPDATE_CURRENT,为了让每次启动PendingIntent进行更新!这两点要注意一下,我在编写的时候就是遇到这两个问题了!另外就是算法的判断!感觉好可以赞一个,支持我的原创!
有问题的可以留言,想要源码的可以留言,或者在我的csdn资源上下载:
http://download.csdn.net/source/3572215
转载请标明出处:
http://blog.csdn.net/wdaming1986/article/details/6745655
程序进入的开始界面: 点击每个闹钟后弹出的dialog界面:
点击设置时间后弹出的dialog界面: 点击设置重复后弹出的界面:
闹钟时间到了,会弹出提醒Dialog: 点击是否开启闹钟按钮,不选中确定的界面:
下面看代码:
一、MainActivity。java类,程序入口类:
- package com.cn.daming;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.LinearLayout;
- public class MainActivity extends Activity {
- private LinearLayout mLinearLayout;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- this.setContentView(R.layout.main);
- mLinearLayout = (LinearLayout)findViewById(R.id.box);
- new AlarmClockView(this,this,mLinearLayout);
- }
- }
二、AlarmClockView。java类,listview的类:
- package com.cn.daming;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.List;
- import android.app.AlarmManager;
- import android.app.AlertDialog;
- import android.app.PendingIntent;
- import android.app.TimePickerDialog;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.database.Cursor;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.Button;
- import android.widget.CheckBox;
- import android.widget.CompoundButton;
- import android.widget.CompoundButton.OnCheckedChangeListener;
- import android.widget.LinearLayout;
- import android.widget.ListView;
- import android.widget.TextView;
- import android.widget.TimePicker;
- import android.widget.Toast;
- public class AlarmClockView extends View{
- private MainActivity activity;
- private LinearLayout mLinearLayout;
- private Context context;
- private DataBaseHelper dbHelper;
- private Cursor cursor;
- private ListView mAlarmListView;
- private List<String> ids;
- private List<String> times;
- private List<String> repeats;
- private List<String> isopens;
- private List<String> kinds;
- private AlarmClockAdapter alarmAdapter;
- Calendar c=Calendar.getInstance();
- TextView time1TextView = null;
- TextView time2TextView = null;
- Button setTimeButton1 = null;
- Button setTimeButton2 = null;
- TextView repeat1TextView = null;
- TextView repeat2TextView = null;
- Button repeatButton1 = null;
- Button repeatButton2 = null;
- CheckBox time1CheckBox = null;
- CheckBox time2CheckBox = null;
- String tmpS1 = "目前无设置";
- String repeatString1 = "目前无设置";
- String tmpS2 = "目前无设置";
- String repeatString2 = "目前无设置";
- boolean isOpenInt1 = false;
- boolean isOpenInt2 = false;
- String isOpentime1 = null;
- String isOpentime2 = null;
- boolean isOpenAlarm = false;
- CheckBox isOpenCheckBox;
- int[] repeatArray1 = {0,0,0,0,0,0,0};
- int[] repeatArray2 = {0,0,0,0,0,0,0};
- boolean repeat_1_1 = false;
- boolean repeat_1_2 = false;
- boolean repeat_1_3 = false;
- boolean repeat_1_4 = false;
- boolean repeat_1_5 = false;
- boolean repeat_1_6 = false;
- boolean repeat_1_7 = false;
- boolean repeat_2_1 = false;
- boolean repeat_2_2 = false;
- boolean repeat_2_3 = false;
- boolean repeat_2_4 = false;
- boolean repeat_2_5 = false;
- boolean repeat_2_6 = false;
- boolean repeat_2_7 = false;
- public AlarmClockView(final Context context,MainActivity activity, LinearLayout linearLayout) {
- super(context);
- this.context = context;
- this.activity = activity;
- this.mLinearLayout = linearLayout;
- View alarmView = View.inflate(context, R.layout.alarm_listview, null);
- mLinearLayout.addView(alarmView);
- mAlarmListView = (ListView)alarmView.findViewById(R.id.alarm_list);
- mAlarmListView.setCacheColorHint(0);
- dbHelper = new DataBaseHelper(context);
- refreshDBHelper();
- mAlarmListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
- public void onItemClick(AdapterView<?> arg0, View v, int position,
- long arg3) {
- showAlarmDialog(position);
- }
- });
- }
- public void refreshDBHelper()
- {
- cursor = dbHelper.selectAlarmColock();
- ids = new ArrayList<String>();
- times = new ArrayList<String>();
- repeats = new ArrayList<String>();
- isopens = new ArrayList<String>();
- kinds = new ArrayList<String>();
- int count = cursor.getCount();
- if(count==0){
- String[] tempStr = new String[4];
- for(int i=1;i<=2;i++){
- dbHelper.insertAlarmColock(tempStr);
- }
- int count2 = cursor.getCount();
- if(count2>0){
- for(int i=0;i<count2;i++){
- cursor.moveToPosition(i);
- ids.add(cursor.getString(0));
- times.add(cursor.getString(1));
- repeats.add(cursor.getString(2));
- isopens.add(cursor.getString(3));
- kinds.add(cursor.getString(4));
- }
- }
- cursor.close();
- dbHelper.close();
- refreshDBHelper();
- Toast.makeText(context, R.string.not_dbcursor_values, Toast.LENGTH_SHORT).show();
- }
- else if(count>0){
- for(int i=0;i<count;i++){
- cursor.moveToPosition(i);
- ids.add(cursor.getString(0));
- times.add(cursor.getString(1));
- repeats.add(cursor.getString(2));
- isopens.add(cursor.getString(3));
- kinds.add(cursor.getString(4));
- }
- }
- alarmAdapter = new AlarmClockAdapter(context,ids,times,repeats,isopens,kinds);
- mAlarmListView.setAdapter(alarmAdapter);
- cursor.close();
- dbHelper.close();
- }
- public void showAlarmDialog(int position){
- dbHelper = new DataBaseHelper(context);
- cursor = dbHelper.selectAlarmColock();
- int count = cursor.getCount();
- if(position == 0){
- LayoutInflater factory = LayoutInflater.from(context);
- final View alarm1View = factory.inflate(R.layout.time_repeat_dialog, null);
- time1TextView = (TextView)alarm1View.findViewById(R.id.text);
- setTimeButton1 = (Button)alarm1View.findViewById(R.id.mButton);
- repeat1TextView = (TextView)alarm1View.findViewById(R.id.repeattext);
- repeatButton1 = (Button)alarm1View.findViewById(R.id.repeatButton);
- time1CheckBox = (CheckBox)alarm1View.findViewById(R.id.isopen_check);
- String isOpen1 = "关";
- if(count==2){
- for(int i=0;i<count;i++){
- if(i == 0){
- cursor.moveToPosition(i);
- if(cursor.getString(1)==null){
- time1TextView.setText(tmpS1);
- }else{
- time1TextView.setText(cursor.getString(1));
- tmpS1 = cursor.getString(1);
- }
- if((cursor.getString(2))==null){
- repeat1TextView.setText(repeatString1);
- }else{
- repeat1TextView.setText(cursor.getString(2));
- repeatString1 = cursor.getString(2);
- }
- isOpen1 = cursor.getString(3);
- if(isOpen1!=null){
- if(isOpen1.equals("开")){
- time1CheckBox.setChecked(true);
- isOpenInt1 = true;
- }else{
- time1CheckBox.setChecked(false);
- isOpenInt1 = false;
- }
- }
- }
- }
- }
- time1CheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){
- public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
- if(arg0.isChecked()){
- isOpenInt1 = true;
- }else{
- isOpenInt1 = false;
- }
- }
- });
- setTimeButton1.setOnClickListener(new OnClickListener(){
- public void onClick(View arg0) {
- c.setTimeInMillis(System.currentTimeMillis());
- int mHour=c.get(Calendar.HOUR_OF_DAY);
- int mMinute=c.get(Calendar.MINUTE);
- int mDay=c.get(Calendar.DAY_OF_WEEK);
- new TimePickerDialog(context,
- new TimePickerDialog.OnTimeSetListener()
- {
- public void onTimeSet(TimePicker view,int hourOfDay,
- int minute)
- {
- c.setTimeInMillis(System.currentTimeMillis());
- c.set(Calendar.HOUR_OF_DAY,hourOfDay);
- c.set(Calendar.MINUTE,minute);
- c.set(Calendar.SECOND,0);
- c.set(Calendar.MILLISECOND,0);
- tmpS1=format(hourOfDay)+":"+format(minute);
- time1TextView.setText(tmpS1);
- Toast.makeText(context,
- "设置闹钟时间为" + tmpS1,
- Toast.LENGTH_SHORT).show();
- }
- },mHour,mMinute,true).show();
- }
- });
- repeatButton1.setOnClickListener(new OnClickListener(){
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- repeatString1 = "";
- new AlertDialog.Builder(context)
- .setTitle(R.string.alert_dialog_multi_choice)
- .setMultiChoiceItems(R.array.select_dialog_items,
- new boolean[]{false, false, false, false, false, false, false},
- new DialogInterface.OnMultiChoiceClickListener() {
- public void onClick(DialogInterface dialog, int whichButton,
- boolean isChecked) {
- /* User clicked on a check box do some stuff */
- switch(whichButton){
- case 0: if(isChecked){
- repeatArray1[0] = 1;
- }else{
- repeatArray1[0] = 0;
- }
- break;
- case 1:if(isChecked){
- repeatArray1[1] = 1;
- }else{
- repeatArray1[1] = 0;
- }
- break;
- case 2:if(isChecked){
- repeatArray1[2] = 1;
- }else{
- repeatArray1[2] = 0;
- }
- break;
- case 3:if(isChecked){
- repeatArray1[3] = 1;
- }else{
- repeatArray1[3] = 0;
- }
- break;
- case 4:if(isChecked){
- repeatArray1[4] = 1;
- }else{
- repeatArray1[4] = 0;
- }
- break;
- case 5:if(isChecked){
- repeatArray1[5] = 1;
- }else{
- repeatArray1[5] = 0;
- }
- break;
- case 6:if(isChecked){
- repeatArray1[6] = 1;
- }else{
- repeatArray1[6] = 0;
- }
- break;
- default: break;
- }
- }
- })
- .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- if(repeatArray1[0] == 1){
- repeatString1 += "周一"+",";
- repeat_1_1 = true;
- }else{
- repeat_1_1 = false;
- }
- if(repeatArray1[1] == 1){
- repeatString1 += "周二"+",";
- repeat_1_2 = true;
- }else{
- repeat_1_2 = false;
- }
- if(repeatArray1[2] == 1){
- repeatString1 += "周三"+",";
- repeat_1_3 = true;
- }else{
- repeat_1_3 = false;
- }
- if(repeatArray1[3] == 1){
- repeatString1 += "周四"+",";
- repeat_1_4 = true;
- }else{
- repeat_1_4 = false;
- }
- if(repeatArray1[4] == 1){
- repeatString1 += "周五"+",";
- repeat_1_5 = true;
- }else{
- repeat_1_5 = false;
- }
- if(repeatArray1[5] == 1){
- repeatString1 += "周六"+",";
- repeat_1_6 = true;
- }else{
- repeat_1_6 = false;
- }
- if(repeatArray1[6] == 1){
- repeatString1 += "周日";
- repeat_1_7 = true;
- }else{
- repeat_1_7 = false;
- }
- if(!(repeat_1_1 || repeat_1_2 || repeat_1_3 || repeat_1_4 ||
- repeat_1_5 || repeat_1_6 || repeat_1_7)){
- repeatString1 = ("无重复");
- }
- repeat1TextView.setText(repeatString1);
- for(int i=0;i<repeatArray1.length;i++){
- repeatArray1[i] = 0;
- }
- }
- })
- .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- /* User clicked No so do some stuff */
- }
- })
- .show();
- }
- });
- //show AlertDialog
- new AlertDialog.Builder(context)
- .setIcon(R.drawable.alarm_dialog)
- .setTitle(R.string.alarm_dialog_title)
- .setView(alarm1View)
- .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- if(isOpenInt1){
- isOpentime1 = "开";
- Intent intent1 = new Intent(context, CallAlarm.class);
- intent1.putExtra("RESULT", "alarm1");
- PendingIntent sender=PendingIntent.getBroadcast(
- context,0, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManager am;
- am = (AlarmManager)activity.getSystemService(context.ALARM_SERVICE);
- int nowDay = Contants.getNowWeek();
- int setDay = 0;
- if(repeatString1.equals("目前无设置"))
- {
- if(Contants.differSetTimeAndNowTime(c.getTimeInMillis())){
- am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),sender);
- }
- else{
- Toast.makeText(context, R.string.not_time_right, Toast.LENGTH_SHORT);
- }
- }
- if(!(repeatString1.equals("目前无设置"))){
- String[] setStr = repeatString1.split(",");
- int[] dayOfNum = Contants.getDayOfNum(setStr);
- setDay = Contants.getResultDifferDay(dayOfNum, nowDay);
- int differDay = Contants.compareDayNowToNext(nowDay, setDay);
- if(differDay == 0){
- if(Contants.differSetTimeAndNowTime(c.getTimeInMillis())){
- am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),sender);
- }else{
- am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis() + Contants.getDifferMillis(7),sender);
- }
- }else{
- am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis() + Contants.getDifferMillis(differDay),sender);
- }
- }
- }else{
- isOpentime1 = "关";
- Intent intent = new Intent(context, CallAlarm.class);
- PendingIntent sender=PendingIntent.getBroadcast(
- context,0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManager am;
- am =(AlarmManager)activity.getSystemService(context.ALARM_SERVICE);
- am.cancel(sender);
- Toast.makeText(context,R.string.alarm_delete1,
- Toast.LENGTH_SHORT).show();
- }
- String[] temStr = new String[7];
- temStr[0] = tmpS1;
- temStr[1] = repeatString1;
- temStr[2] = isOpentime1;
- dbHelper.updateAlarmColock(1+"", temStr);
- refreshDBHelper();
- }
- })
- .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- refreshDBHelper();
- }
- })
- .create().show();
- Log.v("wangxianming", "this is click Item1");
- }
- else if(position == 1){
- LayoutInflater factory = LayoutInflater.from(context);
- final View alarm1View = factory.inflate(R.layout.time_repeat_dialog, null);
- time2TextView = (TextView)alarm1View.findViewById(R.id.text);
- setTimeButton2 = (Button)alarm1View.findViewById(R.id.mButton);
- repeat2TextView = (TextView)alarm1View.findViewById(R.id.repeattext);
- repeatButton2 = (Button)alarm1View.findViewById(R.id.repeatButton);
- time2CheckBox = (CheckBox)alarm1View.findViewById(R.id.isopen_check);
- String isOpen2 = "关";
- if(count==2){
- for(int i=0;i<count;i++){
- if(i == 1){
- cursor.moveToPosition(i);
- if(cursor.getString(1)==null){
- time2TextView.setText(tmpS2);
- }else{
- time2TextView.setText(cursor.getString(1));
- tmpS2 = cursor.getString(1);
- }
- if((cursor.getString(2))==null){
- repeat2TextView.setText(repeatString2);
- }else{
- repeat2TextView.setText(cursor.getString(2));
- repeatString2 = cursor.getString(2);
- }
- isOpen2 = cursor.getString(3);
- if(isOpen2!=null){
- if(isOpen2.equals("开")){
- time2CheckBox.setChecked(true);
- isOpenInt2 = true;
- }else{
- time2CheckBox.setChecked(false);
- isOpenInt2 = false;
- }
- }
- }
- }
- }
- time2CheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){
- public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
- // TODO Auto-generated method stub
- if(arg0.isChecked()){
- isOpenInt2 = true;
- }else{
- isOpenInt2 = false;
- }
- }
- });
- setTimeButton2.setOnClickListener(new OnClickListener(){
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- c.setTimeInMillis(System.currentTimeMillis());
- int mHour=c.get(Calendar.HOUR_OF_DAY);
- int mMinute=c.get(Calendar.MINUTE);
- int mDay=c.get(Calendar.DAY_OF_WEEK);
- new TimePickerDialog(context,
- new TimePickerDialog.OnTimeSetListener()
- {
- public void onTimeSet(TimePicker view,int hourOfDay,
- int minute)
- {
- c.setTimeInMillis(System.currentTimeMillis());
- c.set(Calendar.HOUR_OF_DAY,hourOfDay);
- c.set(Calendar.MINUTE,minute);
- c.set(Calendar.SECOND,0);
- c.set(Calendar.MILLISECOND,0);
- tmpS2=format(hourOfDay)+":"+format(minute);
- time2TextView.setText(tmpS2);
- Toast.makeText(context,R.string.alarm_set2+tmpS2,Toast.LENGTH_SHORT).show();
- }
- },mHour,mMinute,true).show();
- }
- });
- repeatButton2.setOnClickListener(new OnClickListener(){
- public void onClick(View arg0) {
- repeatString2 = "";
- new AlertDialog.Builder(context)
- .setTitle(R.string.alert_dialog_multi_choice)
- .setMultiChoiceItems(R.array.select_dialog_items,
- new boolean[]{false, false, false, false, false, false, false},
- new DialogInterface.OnMultiChoiceClickListener() {
- public void onClick(DialogInterface dialog, int whichButton,
- boolean isChecked) {
- /* User clicked on a check box do some stuff */
- switch(whichButton){
- case 0: if(isChecked){
- repeatArray2[0] = 1;
- }else{
- repeatArray2[0] = 0;
- }
- break;
- case 1:if(isChecked){
- repeatArray2[1] = 1;
- }else{
- repeatArray2[1] = 0;
- }
- break;
- case 2:if(isChecked){
- repeatArray2[2] = 1;
- }else{
- repeatArray2[2] = 0;
- }
- break;
- case 3:if(isChecked){
- repeatArray2[3] = 1;
- }else{
- repeatArray2[3] = 0;
- }
- break;
- case 4:if(isChecked){
- repeatArray2[4] = 1;
- }else{
- repeatArray2[4] = 0;
- }
- break;
- case 5:if(isChecked){
- repeatArray2[5] = 1;
- }else{
- repeatArray2[5] = 0;
- }
- break;
- case 6:if(isChecked){
- repeatArray2[6] = 1;
- }else{
- repeatArray2[6] = 0;
- }
- break;
- default: break;
- }
- }
- })
- .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- if(repeatArray2[0] == 1){
- repeatString2 += "周一"+",";
- repeat_2_1 = true;
- }else{
- repeat_2_1 = false;
- }
- if(repeatArray2[1] == 1){
- repeatString2 += "周二"+",";
- repeat_2_2 = true;
- }else{
- repeat_2_2 = false;
- }
- if(repeatArray2[2] == 1){
- repeatString2 += "周三"+",";
- repeat_2_3 = true;
- }else{
- repeat_2_3 = false;
- }
- if(repeatArray2[3] == 1){
- repeatString2 += "周四"+",";
- repeat_2_4 = true;
- }else{
- repeat_2_4 = false;
- }
- if(repeatArray2[4] == 1){
- repeatString2 += "周五"+",";
- repeat_2_5 = true;
- }else{
- repeat_1_5 = false;
- }
- if(repeatArray2[5] == 1){
- repeatString2 += "周六"+",";
- repeat_2_6 = true;
- }else{
- repeat_2_6 = false;
- }
- if(repeatArray2[6] == 1){
- repeatString2 += "周日";
- repeat_2_7 = true;
- }else{
- repeat_2_7 = false;
- }
- if(!(repeat_2_1 || repeat_2_2 || repeat_2_3 || repeat_2_4 ||
- repeat_2_5 || repeat_2_6 || repeat_2_7)){
- repeatString2 = ("无设置");
- }
- repeat2TextView.setText(repeatString2);
- for(int i=0;i<repeatArray1.length;i++){
- repeatArray2[i] = 0;
- }
- }
- })
- .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- /* User clicked No so do some stuff */
- }
- })
- .show();
- }
- });
- // show Dialog
- new AlertDialog.Builder(context)
- .setIcon(R.drawable.alarm_dialog)
- .setTitle(R.string.alarm_dialog_title)
- .setView(alarm1View)
- .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- if(isOpenInt2){
- isOpentime2 = "开";
- Intent intent2 = new Intent(context, CallAlarm.class);
- intent2.putExtra("RESULT", "alarm2");
- PendingIntent sender=PendingIntent.getBroadcast(
- context,1, intent2, PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManager am;
- am = (AlarmManager)activity.getSystemService(context.ALARM_SERVICE);
- int nowDay = Contants.getNowWeek();
- int setDay = 0;
- if(repeatString2.equals("目前无设置"))
- {
- if(Contants.differSetTimeAndNowTime(c.getTimeInMillis())){
- am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),sender);
- }
- else{
- Toast.makeText(context, R.string.not_time_right, Toast.LENGTH_SHORT);
- }
- }
- if(!(repeatString2.equals("目前无设置"))){
- String[] setStr = repeatString2.split(",");
- int[] dayOfNum = Contants.getDayOfNum(setStr);
- setDay = Contants.getResultDifferDay(dayOfNum, nowDay);
- int differDay = Contants.compareDayNowToNext(nowDay, setDay);
- if(differDay == 0){
- if(Contants.differSetTimeAndNowTime(c.getTimeInMillis())){
- am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),sender);
- }else{
- am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis() + Contants.getDifferMillis(7),sender);
- }
- }else{
- am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis() + Contants.getDifferMillis(differDay),sender);
- }
- }
- }else{
- isOpentime2 = "关";
- Intent intent = new Intent(context, CallAlarm.class);
- intent.putExtra("RESULT", "cancel");
- PendingIntent sender=PendingIntent.getBroadcast(
- context,1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManager am;
- am =(AlarmManager)activity.getSystemService(context.ALARM_SERVICE);
- am.cancel(sender);
- Toast.makeText(context,R.string.alarm_delete2,
- Toast.LENGTH_SHORT).show();
- }
- String[] temStr = new String[7];
- temStr[0] = tmpS2;
- temStr[1] = repeatString2;
- temStr[2] = isOpentime2;
- dbHelper.updateAlarmColock(2+"", temStr);
- refreshDBHelper();
- }
- })
- .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- refreshDBHelper();
- }
- })
- .create().show();
- }
- cursor.close();
- dbHelper.close();
- }
- private String format(int x)
- {
- String s=""+x;
- if(s.length()==1) s="0"+s;
- return s;
- }
- }
三、AlarmClockAdapter。java类,适配器的类:
- package com.cn.daming;
- import java.util.List;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class AlarmClockAdapter extends BaseAdapter{
- private LayoutInflater layoutInflater;
- private Context context;
- private List<String> alarm_ids;
- private List<String> alarm_times;
- private List<String> alarm_repeats;
- private List<String> alarm_isopens;
- private List<String> alarm_kinds;
- ZuJian zuJian;
- public AlarmClockAdapter(Context context,List<String> ids,List<String> times,List<String> repeats,
- List<String> isopens,List<String> kinds) {
- this.context = context;
- this.alarm_ids = ids;
- this.alarm_times = times;
- this.alarm_repeats = repeats;
- this.alarm_isopens = isopens;
- this.alarm_kinds = kinds;
- this.layoutInflater = LayoutInflater.from(context);
- }
- public int getCount() {
- return alarm_times.size();
- }
- public Object getItem(int position) {
- return alarm_times.get(position);
- }
- public long getItemId(int position) {
- return position;
- }
- public View getView(int position, View convertView, ViewGroup parent) {
- zuJian = new ZuJian();
- if (convertView == null) {
- convertView = layoutInflater.inflate(R.layout.alarm_clock, null);
- zuJian.alarmTitle = (TextView) convertView.findViewById(R.id.alarm_title);
- zuJian.alarmTimeView = (TextView) convertView.findViewById(R.id.alarm_time);
- zuJian.repeatAlarmView = (TextView) convertView.findViewById(R.id.alarm_repeat_time);
- zuJian.showISOpenView = (ImageView) convertView.findViewById(R.id.show_open_close);
- convertView.setTag(zuJian);
- } else {
- zuJian = (ZuJian) convertView.getTag();
- }
- if (alarm_kinds.get(position) == null || alarm_kinds.get(position) == "") {
- if(position == 0){
- zuJian.alarmTitle.setText("大明闹钟一");
- }
- if(position == 1){
- zuJian.alarmTitle.setText("大明闹钟二");
- }
- } else {
- zuJian.alarmTitle.setText(alarm_kinds.get(position));
- }
- if (alarm_times.get(position) == null || alarm_times.get(position) == "") {
- zuJian.alarmTimeView.setText("目前无设置");
- } else {
- zuJian.alarmTimeView.setText(alarm_times.get(position));
- }
- if (alarm_repeats.get(position) == null || alarm_repeats.get(position) == "") {
- zuJian.repeatAlarmView.setText("目前无设置");
- } else {
- zuJian.repeatAlarmView.setText(alarm_repeats.get(position));
- }
- if (alarm_isopens.get(position) == null || alarm_isopens.get(position) == "") {
- ((ImageView) zuJian.showISOpenView).setBackgroundResource(R.drawable.alarm_dialog);
- } else {
- if(alarm_isopens.get(position).equals("开")){
- ((ImageView) zuJian.showISOpenView).setBackgroundResource(R.drawable.clock);
- }
- if(alarm_isopens.get(position).equals("关")){
- ((ImageView) zuJian.showISOpenView).setBackgroundResource(R.drawable.alarm_dialog);
- }
- }
- return convertView;
- }
- final class ZuJian {
- public TextView alarmTitle;
- public TextView alarmTimeView;
- public TextView repeatAlarmView;
- public ImageView showISOpenView;
- }
- }
四、CallAlarm。java类,接受广播BroadcastReceiver的类:
- package com.cn.daming;
- /* import class */
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- /*AlarmReceiver */
- public class CallAlarm extends BroadcastReceiver
- {
- @Override
- public void onReceive(final Context context, Intent intent)
- {
- String getStr = intent.getExtras().getString("RESULT");
- Log.v("wangxianming", "RESULT = "+getStr);
- Intent alaramIntent = new Intent(context, AlarmAgainSetting.class);
- Bundle bundleRet = new Bundle();
- bundleRet.putString("STR_RESULT", getStr);
- alaramIntent.putExtras(bundleRet);
- alaramIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(alaramIntent);
- }
- }
五、Contants。java类,工具类:
- package com.cn.daming;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Random;
- public class Contants {
- //repeated day of week define
- public static Map<String, Integer> mapWeek = new HashMap<String,Integer>();
- public static void addMapWeek(){
- mapWeek.put("周一", 1);
- mapWeek.put("周二", 2);
- mapWeek.put("周三", 3);
- mapWeek.put("周四", 4);
- mapWeek.put("周五", 5);
- mapWeek.put("周六", 6);
- mapWeek.put("周日", 7);
- mapWeek.put("无重复", 0);
- }
- public static int getMapWeek(String str){
- Contants.addMapWeek();
- int dayOfMapWeek = 0;
- if(str != null){
- dayOfMapWeek = mapWeek.get(str);
- }
- return dayOfMapWeek;
- }
- public static String[] getDatetimeString(){
- Date date = new Date();
- String[] tempStr = new String[2];
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String str = format.format(date);
- tempStr[0] = str.substring(0, 10);
- tempStr[1] = str.substring(11, str.length());
- return tempStr;
- }
- public static long getNowTimeMinuties()
- {
- return System.currentTimeMillis();
- }
- public static boolean differSetTimeAndNowTime(long setTime)
- {
- if(setTime >= getNowTimeMinuties()){
- return true;
- }else{
- return false;
- }
- }
- public static long getDifferMillis(int differDays)
- {
- return differDays * 24 * 60 * 60 * 1000;
- }
- //compare nowDay to nextDay
- public static int compareDayNowToNext(int nowDay,int nextDay){
- if(nextDay > nowDay){
- return (nextDay-nowDay);
- }else if(nextDay == nowDay){
- return 0;
- }else{
- return (7-(nowDay-nextDay));
- }
- }
- //turn the nowday to China`s day of Week
- public static Map<String, Integer> nowWeek = new HashMap<String,Integer>();
- public static void addNowWeek()
- {
- nowWeek.put("1", 7);
- nowWeek.put("2", 1);
- nowWeek.put("3", 2);
- nowWeek.put("4", 3);
- nowWeek.put("5", 4);
- nowWeek.put("6", 5);
- nowWeek.put("7", 6);
- }
- public static int getNowWeek()
- {
- Calendar nowCal = Calendar.getInstance();
- Date nowDate = new Date(System.currentTimeMillis());
- nowCal.setTime(nowDate);
- int nowNum = nowCal.get(nowCal.DAY_OF_WEEK);
- String nowNumStr = String.valueOf(nowNum);
- Contants.addNowWeek();
- int nowDayOfWeek = 0;
- if(nowNumStr != null){
- nowDayOfWeek = nowWeek.get(nowNumStr);
- }
- return nowDayOfWeek;
- }
- public static int getSetDay(String str)
- {
- if(str.equals("周一")){
- return 1;
- }
- if(str.equals("周二")){
- return 2;
- }
- if(str.equals("周三")){
- return 3;
- }
- if(str.equals("周四")){
- return 4;
- }
- if(str.equals("周五")){
- return 5;
- }
- if(str.equals("周六")){
- return 6;
- }
- if(str.equals("周日")){
- return 7;
- }
- return 0;
- }
- public static int[] getDayOfNum(String[] str)
- {
- int[] dayOfInt = new int[str.length];
- for(int i=0;i<str.length;i++){
- dayOfInt[i] = getSetDay(str[i]);
- }
- return dayOfInt;
- }
- public static int getResultDifferDay(int[] in,int nowDay)
- {
- int result = 0;
- for(int i=0;i<in.length;i++){
- if(in[i] >= nowDay){
- result = in[i];
- break;
- }
- }
- if(result == 0){
- result = in[0];
- }
- return result;
- }
- public static int getResultDifferDay1(int[] in,int nowDay)
- {
- int result = 0;
- for(int i=0;i<in.length;i++){
- if(in[i] > nowDay){
- result = in[i];
- break;
- }
- }
- if(result == 0){
- result = in[0];
- }
- return result;
- }
- }
六、DataBaseHelper。java类,数据库sqlite类:
- package com.cn.daming;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.util.Log;
- public class DataBaseHelper extends SQLiteOpenHelper {
- private final static String DATABASE_NAME = "alarm_db";
- private final static int DATABASE_VERSION = 1;
- private final static String ALARM_COLOCK_TABLE = "alarmcolock";
- public final static String ALARM_ID = "_id";
- public final static String ALARM_TIME = "alarmtime"; //alarm time
- public final static String ALARM_REPEAT = "alarmrepeat";//alarm repeate is or not
- public final static String ALARM_ISOPEN = "alarmisopen";//alarm open is 0r not
- public final static String ALARM_KIND = "alarmkind"; //alarm is kind(1 is shuangseqiu ,2 is da le tou )
- public final static String ALARM_SPARE1 = "alarmspare1";//spare1
- public final static String ALARM_SPARE2 = "alarmspare2";//spare2
- public final static String ALARM_SPARE3 = "alarmspare3";//spare3
- public DataBaseHelper(Context context) {
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- String sql = "create table "+ALARM_COLOCK_TABLE+" ("
- +ALARM_ID+" integer primary key autoincrement, "
- +ALARM_TIME+" text, "
- +ALARM_REPEAT+" text, "
- +ALARM_ISOPEN+" text, "
- +ALARM_KIND+" text, "
- +ALARM_SPARE1+" text, "
- +ALARM_SPARE2+" text, "
- +ALARM_SPARE3+" text )";
- db.execSQL(sql);
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
- String sql = "drop table if exists "+ALARM_COLOCK_TABLE;
- db.execSQL(sql);
- }
- //the action in AlarmColock table
- public long insertAlarmColock(String[] strArray)
- {
- SQLiteDatabase db = this.getWritableDatabase();
- ContentValues conv = new ContentValues();
- conv.put(ALARM_TIME, strArray[0]);
- conv.put(ALARM_REPEAT, strArray[1]);
- conv.put(ALARM_ISOPEN, strArray[2]);
- conv.put(ALARM_KIND, strArray[3]);
- return db.insert(ALARM_COLOCK_TABLE, null, conv);
- }
- public Cursor selectAlarmColock(){
- SQLiteDatabase db = this.getReadableDatabase();
- Cursor cursor = db.query(ALARM_COLOCK_TABLE, null, null, null, null, null, null);
- return cursor;
- }
- public Cursor getAlarmColock(String id){
- SQLiteDatabase db = this.getReadableDatabase();
- String where = ALARM_ID+"=?";
- String[] whereValues = {id};
- Cursor cursor = db.query(ALARM_COLOCK_TABLE, null, where, whereValues, null, null, null);
- return cursor;
- }
- public void deleteAlarmColock(String id){
- SQLiteDatabase db = this.getWritableDatabase();
- String where = ALARM_ID+"=?";
- String[] whereValues = {id};
- db.delete(ALARM_COLOCK_TABLE, where, whereValues);
- }
- public int updateAlarmColock(String id,String[] strArray){
- SQLiteDatabase db = this.getWritableDatabase();
- String where = ALARM_ID+"=?";
- String[] whereValues = {id};
- ContentValues cv = new ContentValues();
- cv.put(ALARM_TIME, strArray[0]);
- cv.put(ALARM_REPEAT, strArray[1]);
- cv.put(ALARM_ISOPEN, strArray[2]);
- cv.put(ALARM_KIND, strArray[3]);
- Log.v("wangxianming", "cv : "+cv.get("ALARM_TIME")+cv.get("ALARM_REPEAT")+cv.get("ALARM_ISOPEN")+cv.get("ALARM_KIND"));
- return db.update(ALARM_COLOCK_TABLE, cv, where, whereValues);
- }
- }
七、AlarmAgainSetting。java类,闹钟重复设置的类:
- package com.cn.daming;
- import android.app.Activity;
- import android.app.AlarmManager;
- import android.app.AlertDialog;
- import android.app.PendingIntent;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.database.Cursor;
- import android.os.Bundle;
- import android.widget.Toast;
- public class AlarmAgainSetting extends Activity{
- private DataBaseHelper dbHelper;
- private Cursor cursor;
- Intent getAlarmAgainSetting;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getAlarmAgainSetting = AlarmAgainSetting.this.getIntent();
- String getAlarmAgainSettingStr = getAlarmAgainSetting.getExtras().getString("STR_RESULT");
- dbHelper = new DataBaseHelper(this);
- if(getAlarmAgainSettingStr.equals("alarm1")){
- Intent againIntent = new Intent(AlarmAgainSetting.this, CallAlarm.class);
- againIntent.putExtra("RESULT", "alarm1");
- PendingIntent sender=PendingIntent.getBroadcast(
- AlarmAgainSetting.this,0, againIntent, PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManager am;
- am = (AlarmManager)getSystemService(ALARM_SERVICE);
- int nowDay = Contants.getNowWeek();
- int setDay = 0;
- cursor = dbHelper.selectAlarmColock();
- String str1 = null;
- int count1 = cursor.getCount();
- if(count1 > 0){
- for(int i=0;i<count1;i++){
- if(i == 0){
- cursor.moveToPosition(i);
- str1 = cursor.getString(2);
- }
- }
- }
- if(!(str1.equals("目前无设置"))){
- String[] setStr = str1.split(",");
- int[] dayOfNum = Contants.getDayOfNum(setStr);
- setDay = Contants.getResultDifferDay1(dayOfNum, nowDay);
- int differDay = Contants.compareDayNowToNext(nowDay, setDay);
- if(differDay == 0){
- am.set(AlarmManager.RTC_WAKEUP,Contants.getNowTimeMinuties() + Contants.getDifferMillis(7),sender);
- }else{
- am.set(AlarmManager.RTC_WAKEUP,Contants.getNowTimeMinuties() + Contants.getDifferMillis(differDay),sender);
- }
- }
- }
- if(getAlarmAgainSettingStr.equals("alarm2")){
- /* allAlarm.class */
- Intent againIntent = new Intent(AlarmAgainSetting.this, CallAlarm.class);
- againIntent.putExtra("RESULT", "alarm2");
- /* PendingIntent */
- PendingIntent sender=PendingIntent.getBroadcast(
- AlarmAgainSetting.this,1, againIntent, PendingIntent.FLAG_UPDATE_CURRENT);
- /* AlarmManager.RTC_WAKEUP
- * */
- AlarmManager am;
- am = (AlarmManager)getSystemService(ALARM_SERVICE);
- int nowDay = Contants.getNowWeek();
- int setDay = 0;
- cursor = dbHelper.selectAlarmColock();
- String str2 = null;
- int count2 = cursor.getCount();
- if(count2 > 0){
- for(int i=0;i<count2;i++){
- if(i == 1){
- cursor.moveToPosition(i);
- str2 = cursor.getString(2);
- }
- }
- }
- if(!(str2.equals("目前无设置"))){
- String[] setStr = str2.split(",");
- int[] dayOfNum = Contants.getDayOfNum(setStr);
- setDay = Contants.getResultDifferDay1(dayOfNum, nowDay);
- int differDay = Contants.compareDayNowToNext(nowDay, setDay);
- if(differDay == 0){
- am.set(AlarmManager.RTC_WAKEUP,Contants.getNowTimeMinuties() + Contants.getDifferMillis(7),sender);
- }else{
- am.set(AlarmManager.RTC_WAKEUP,Contants.getNowTimeMinuties() + Contants.getDifferMillis(differDay),sender);
- }
- }
- }
- cursor.close();
- dbHelper.close();
- Toast.makeText(this, R.string.alarm_time_come, Toast.LENGTH_SHORT).show();
- new AlertDialog.Builder(this)
- .setIcon(R.drawable.clock)
- .setTitle("大明闹钟时间到了!!")
- .setMessage("你使用大明闹钟时间到了!!!")
- .setPositiveButton("确定",
- new DialogInterface.OnClickListener()
- {
- public void onClick(DialogInterface dialog, int whichButton)
- {
- /*AlarmAlertActivity */
- finish();
- }
- }).setNegativeButton("取消",
- new DialogInterface.OnClickListener()
- {
- public void onClick(DialogInterface dialog, int whichButton)
- {
- /*AlarmAlertActivity */
- finish();
- }
- }).show();
- }
- }
布局文件
一、main。xml布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="@drawable/alarm_bg"
- >
- <LinearLayout android:id="@+id/box"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- </LinearLayout>
- </LinearLayout>
二、alarm_clock.xml布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="320dip"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <TextView
- android:id="@+id/alarm_title"
- android:layout_width="320dip"
- android:layout_height="wrap_content"
- android:textColor="#FF000000"
- android:textSize="23px"
- android:layout_margin="5px"
- />
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="320dip"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="250dip"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
- <TextView
- android:id="@+id/alarm_image"
- android:scaleType="centerCrop"
- android:layout_width="20dip"
- android:layout_height="wrap_content"
- android:layout_margin="8px"
- />
- <LinearLayout
- android:layout_width="222dip"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- >
- <TextView
- android:id="@+id/alarm_time"
- android:layout_width="222dip"
- android:layout_height="wrap_content"
- android:paddingLeft="8dip"
- android:layout_marginBottom="3dip"
- android:textColor="#FF000000"
- android:textSize="18px"
- />
- <TextView
- android:id="@+id/alarm_repeat_time"
- android:layout_width="222dip"
- android:layout_height="wrap_content"
- android:paddingLeft="8dip"
- android:layout_gravity="left"
- android:textColor="#FF000000"
- android:textSize="10px"
- />
- </LinearLayout>
- </LinearLayout>
- <View
- android:layout_width="2dip"
- android:layout_height="match_parent"
- android:textColor="#FF000000"
- />
- <ImageView
- android:id="@+id/show_open_close"
- android:layout_width="38dip"
- android:layout_height="wrap_content"
- android:paddingTop="35dip"
- android:scaleType="centerCrop"
- android:layout_gravity="bottom"
- android:gravity="bottom"
- android:textColor="#FF000000"
- />
- <TextView
- android:layout_width="30dip"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
- </LinearLayout>
三、alarm_listview.xml布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:id="@+id/note_textview"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal|center_vertical"
- android:gravity="center_horizontal|center_vertical"
- android:paddingLeft="10dip"
- android:text="@string/alarm_list"
- android:textColor="#FF000000"
- android:textSize="30dip"
- android:textStyle="bold"
- android:paddingTop="6dip"
- android:paddingBottom="6dip"
- />
- <ListView
- android:id="@+id/alarm_list"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- />
- </LinearLayout>
四、time_repeat_dialog.xml布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- >
- <AbsoluteLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout1"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="@drawable/white"
- >
- <DigitalClock
- android:id="@+id/dClock"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="40sp"
- android:textColor="@drawable/blue"
- android:layout_x="58px"
- android:layout_y="5px">
- </DigitalClock>
- <TextView
- android:id="@+id/isopen_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/str_isopen_text"
- android:textSize="16px"
- android:textColor="@drawable/black"
- android:layout_x="10px"
- android:layout_y="64px"
- >
- </TextView>
- <CheckBox
- android:id="@+id/isopen_check"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="20sp"
- android:textColor="@drawable/black"
- android:layout_x="160px"
- android:layout_y="54px"
- />
- <TextView
- android:id="@+id/text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/str_title1"
- android:textSize="20sp"
- android:textColor="@drawable/black"
- android:layout_x="10px"
- android:layout_y="104px"
- >
- </TextView>
- <Button
- android:id="@+id/mButton"
- android:layout_width="108px"
- android:layout_height="40px"
- android:text="@string/str_button1"
- android:textColor="@drawable/black"
- android:textSize="18sp"
- android:layout_x="160px"
- android:layout_y="102px"
- >
- </Button>
- <TextView
- android:id="@+id/repeattext"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/str_default"
- android:textSize="16sp"
- android:textColor="@drawable/red"
- android:layout_x="10px"
- android:layout_y="145px"
- >
- </TextView>
- <Button
- android:id="@+id/repeatButton"
- android:layout_width="108px"
- android:layout_height="40px"
- android:layout_x="160px"
- android:layout_y="182px"
- android:textColor="@drawable/black"
- android:textSize="18sp"
- android:text="@string/repeat_button"
- />
- </AbsoluteLayout>
- </LinearLayout>
value目录下的文件
一、arrays.xml文件
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="select_dialog_items">
- <item>周一</item>
- <item>周二</item>
- <item>周三</item>
- <item>周四</item>
- <item>周五</item>
- <item>周六</item>
- <item>周日</item>
- </string-array>
- </resources>
二、color.xml文件
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <drawable name="white">#FFFFFFFF</drawable>
- <drawable name="black">#000000</drawable>
- <drawable name="blue">#0000FF</drawable>
- <drawable name="red">#FF0000</drawable>
- <drawable name="dackgray">#666666</drawable>
- <drawable name="yellow">#FFFFFF00</drawable>
- </resources>
三、string.xml文件
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">Hello World, MainActivity!</string>
- <string name="app_name">AlarmApp</string>
- <string name="alarm_list">大明闹钟</string>
- <string name="not_dbcursor_values">数据库中没有值,请设置你的闹钟。。。。</string>
- <string name="str_isopen_text">是否开启闹钟</string>
- <string name="str_title1">设置闹钟</string>
- <string name="str_button1">设置时间</string>
- <string name="str_default">目前无设置</string>
- <string name="repeat_button">设置重复</string>
- <string name="alert_dialog_ok">确定</string>
- <string name="alert_dialog_cancel">取消</string>
- <string name="alarm_dialog_title">闹钟设置</string>
- <string name="alert_dialog_multi_choice">重复闹钟设置</string>
- <string name="alarm_time_come">您使用大明闹钟设置的闹钟时间到了!!!</string>
- <string name="alarm_delete1">大明闹钟一删除成功!</string>
- <string name="alarm_delete2">大明闹钟二删除成功!</string>
- <string name="alarm_set2">大明闹钟二时间为:</string>
- <string name="not_time_right">闹钟时间设置不对,请选择周几重复!</string>
- </resources>
- <strong><span style="font-size:24px;color:#660000;">注意:广播一定要在Manifest中注册</span></strong>
AndroidManifest.xml文件:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.cn.daming"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdk android:minSdkVersion="8" />
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <!-- 註冊receiver CallAlarm -->
- <receiver android:name=".CallAlarm" android:process=":remote" />
- <activity android:name=".MainActivity"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name=".AlarmAgainSetting"/>
- </application>
- </manifest>