有问题的可以留言,想要源码的可以留言,或者在我的csdn资源上下载:
http://download.youkuaiyun.com/source/3572215
转载请标明出处:
http://blog.youkuaiyun.com/wdaming1986/article/details/6745655
程序进入的开始界面: 点击每个闹钟后弹出的dialog界面:


点击设置时间后弹出的dialog界面: 点击设置重复后弹出的界面:


闹钟时间到了,会弹出提醒Dialog:点击是否开启闹钟按钮,不选中确定的界面:


下面看代码:
一、MainActivity。java类,程序入口类:
- packagecom.cn.daming;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.widget.LinearLayout;
- publicclassMainActivityextendsActivity{
- privateLinearLayoutmLinearLayout;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- this.setContentView(R.layout.main);
- mLinearLayout=(LinearLayout)findViewById(R.id.box);
- newAlarmClockView(this,this,mLinearLayout);
- }
- }
二、AlarmClockView。java类,listview的类:
- packagecom.cn.daming;
- importjava.util.ArrayList;
- importjava.util.Calendar;
- importjava.util.List;
- importandroid.app.AlarmManager;
- importandroid.app.AlertDialog;
- importandroid.app.PendingIntent;
- importandroid.app.TimePickerDialog;
- importandroid.content.Context;
- importandroid.content.DialogInterface;
- importandroid.content.Intent;
- importandroid.database.Cursor;
- importandroid.util.Log;
- importandroid.view.LayoutInflater;
- importandroid.view.View;
- importandroid.widget.AdapterView;
- importandroid.widget.Button;
- importandroid.widget.CheckBox;
- importandroid.widget.CompoundButton;
- importandroid.widget.CompoundButton.OnCheckedChangeListener;
- importandroid.widget.LinearLayout;
- importandroid.widget.ListView;
- importandroid.widget.TextView;
- importandroid.widget.TimePicker;
- importandroid.widget.Toast;
- publicclassAlarmClockViewextendsView{
- privateMainActivityactivity;
- privateLinearLayoutmLinearLayout;
- privateContextcontext;
- privateDataBaseHelperdbHelper;
- privateCursorcursor;
- privateListViewmAlarmListView;
- privateList<String>ids;
- privateList<String>times;
- privateList<String>repeats;
- privateList<String>isopens;
- privateList<String>kinds;
- privateAlarmClockAdapteralarmAdapter;
- Calendarc=Calendar.getInstance();
- TextViewtime1TextView=null;
- TextViewtime2TextView=null;
- ButtonsetTimeButton1=null;
- ButtonsetTimeButton2=null;
- TextViewrepeat1TextView=null;
- TextViewrepeat2TextView=null;
- ButtonrepeatButton1=null;
- ButtonrepeatButton2=null;
- CheckBoxtime1CheckBox=null;
- CheckBoxtime2CheckBox=null;
- StringtmpS1="目前无设置";
- StringrepeatString1="目前无设置";
- StringtmpS2="目前无设置";
- StringrepeatString2="目前无设置";
- booleanisOpenInt1=false;
- booleanisOpenInt2=false;
- StringisOpentime1=null;
- StringisOpentime2=null;
- booleanisOpenAlarm=false;
- CheckBoxisOpenCheckBox;
- int[]repeatArray1={0,0,0,0,0,0,0};
- int[]repeatArray2={0,0,0,0,0,0,0};
- booleanrepeat_1_1=false;
- booleanrepeat_1_2=false;
- booleanrepeat_1_3=false;
- booleanrepeat_1_4=false;
- booleanrepeat_1_5=false;
- booleanrepeat_1_6=false;
- booleanrepeat_1_7=false;
- booleanrepeat_2_1=false;
- booleanrepeat_2_2=false;
- booleanrepeat_2_3=false;
- booleanrepeat_2_4=false;
- booleanrepeat_2_5=false;
- booleanrepeat_2_6=false;
- booleanrepeat_2_7=false;
- publicAlarmClockView(finalContextcontext,MainActivityactivity,LinearLayoutlinearLayout){
- super(context);
- this.context=context;
- this.activity=activity;
- this.mLinearLayout=linearLayout;
- ViewalarmView=View.inflate(context,R.layout.alarm_listview,null);
- mLinearLayout.addView(alarmView);
- mAlarmListView=(ListView)alarmView.findViewById(R.id.alarm_list);
- mAlarmListView.setCacheColorHint(0);
- dbHelper=newDataBaseHelper(context);
- refreshDBHelper();
- mAlarmListView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
- publicvoidonItemClick(AdapterView<?>arg0,Viewv,intposition,
- longarg3){
- showAlarmDialog(position);
- }
- });
- }
- publicvoidrefreshDBHelper()
- {
- cursor=dbHelper.selectAlarmColock();
- ids=newArrayList<String>();
- times=newArrayList<String>();
- repeats=newArrayList<String>();
- isopens=newArrayList<String>();
- kinds=newArrayList<String>();
- intcount=cursor.getCount();
- if(count==0){
- String[]tempStr=newString[4];
- for(inti=1;i<=2;i++){
- dbHelper.insertAlarmColock(tempStr);
- }
- intcount2=cursor.getCount();
- if(count2>0){
- for(inti=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();
- }
- elseif(count>0){
- for(inti=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=newAlarmClockAdapter(context,ids,times,repeats,isopens,kinds);
- mAlarmListView.setAdapter(alarmAdapter);
- cursor.close();
- dbHelper.close();
- }
- publicvoidshowAlarmDialog(intposition){
- dbHelper=newDataBaseHelper(context);
- cursor=dbHelper.selectAlarmColock();
- intcount=cursor.getCount();
- if(position==0){
- LayoutInflaterfactory=LayoutInflater.from(context);
- finalViewalarm1View=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);
- StringisOpen1="关";
- if(count==2){
- for(inti=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(newOnCheckedChangeListener(){
- publicvoidonCheckedChanged(CompoundButtonarg0,booleanarg1){
- if(arg0.isChecked()){
- isOpenInt1=true;
- }else{
- isOpenInt1=false;
- }
- }
- });
- setTimeButton1.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewarg0){
- c.setTimeInMillis(System.currentTimeMillis());
- intmHour=c.get(Calendar.HOUR_OF_DAY);
- intmMinute=c.get(Calendar.MINUTE);
- intmDay=c.get(Calendar.DAY_OF_WEEK);
- newTimePickerDialog(context,
- newTimePickerDialog.OnTimeSetListener()
- {
- publicvoidonTimeSet(TimePickerview,inthourOfDay,
- intminute)
- {
- 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(newOnClickListener(){
- publicvoidonClick(Viewarg0){
- //TODOAuto-generatedmethodstub
- repeatString1="";
- newAlertDialog.Builder(context)
- .setTitle(R.string.alert_dialog_multi_choice)
- .setMultiChoiceItems(R.array.select_dialog_items,
- newboolean[]{false,false,false,false,false,false,false},
- newDialogInterface.OnMultiChoiceClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton,
- booleanisChecked){
- /*Userclickedonacheckboxdosomestuff*/
- switch(whichButton){
- case0:if(isChecked){
- repeatArray1[0]=1;
- }else{
- repeatArray1[0]=0;
- }
- break;
- case1:if(isChecked){
- repeatArray1[1]=1;
- }else{
- repeatArray1[1]=0;
- }
- break;
- case2:if(isChecked){
- repeatArray1[2]=1;
- }else{
- repeatArray1[2]=0;
- }
- break;
- case3:if(isChecked){
- repeatArray1[3]=1;
- }else{
- repeatArray1[3]=0;
- }
- break;
- case4:if(isChecked){
- repeatArray1[4]=1;
- }else{
- repeatArray1[4]=0;
- }
- break;
- case5:if(isChecked){
- repeatArray1[5]=1;
- }else{
- repeatArray1[5]=0;
- }
- break;
- case6:if(isChecked){
- repeatArray1[6]=1;
- }else{
- repeatArray1[6]=0;
- }
- break;
- default:break;
- }
- }
- })
- .setPositiveButton(R.string.alert_dialog_ok,newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton){
- 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(inti=0;i<repeatArray1.length;i++){
- repeatArray1[i]=0;
- }
- }
- })
- .setNegativeButton(R.string.alert_dialog_cancel,newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton){
- /*UserclickedNosodosomestuff*/
- }
- })
- .show();
- }
- });
- //showAlertDialog
- newAlertDialog.Builder(context)
- .setIcon(R.drawable.alarm_dialog)
- .setTitle(R.string.alarm_dialog_title)
- .setView(alarm1View)
- .setPositiveButton(R.string.alert_dialog_ok,newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton){
- if(isOpenInt1){
- isOpentime1="开";
- Intentintent1=newIntent(context,CallAlarm.class);
- intent1.putExtra("RESULT","alarm1");
- PendingIntentsender=PendingIntent.getBroadcast(
- context,0,intent1,PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManageram;
- am=(AlarmManager)activity.getSystemService(context.ALARM_SERVICE);
- intnowDay=Contants.getNowWeek();
- intsetDay=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);
- intdifferDay=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="关";
- Intentintent=newIntent(context,CallAlarm.class);
- PendingIntentsender=PendingIntent.getBroadcast(
- context,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManageram;
- am=(AlarmManager)activity.getSystemService(context.ALARM_SERVICE);
- am.cancel(sender);
- Toast.makeText(context,R.string.alarm_delete1,
- Toast.LENGTH_SHORT).show();
- }
- String[]temStr=newString[7];
- temStr[0]=tmpS1;
- temStr[1]=repeatString1;
- temStr[2]=isOpentime1;
- dbHelper.updateAlarmColock(1+"",temStr);
- refreshDBHelper();
- }
- })
- .setNegativeButton(R.string.alert_dialog_cancel,newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton){
- refreshDBHelper();
- }
- })
- .create().show();
- Log.v("wangxianming","thisisclickItem1");
- }
- elseif(position==1){
- LayoutInflaterfactory=LayoutInflater.from(context);
- finalViewalarm1View=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);
- StringisOpen2="关";
- if(count==2){
- for(inti=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(newOnCheckedChangeListener(){
- publicvoidonCheckedChanged(CompoundButtonarg0,booleanarg1){
- //TODOAuto-generatedmethodstub
- if(arg0.isChecked()){
- isOpenInt2=true;
- }else{
- isOpenInt2=false;
- }
- }
- });
- setTimeButton2.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewarg0){
- //TODOAuto-generatedmethodstub
- c.setTimeInMillis(System.currentTimeMillis());
- intmHour=c.get(Calendar.HOUR_OF_DAY);
- intmMinute=c.get(Calendar.MINUTE);
- intmDay=c.get(Calendar.DAY_OF_WEEK);
- newTimePickerDialog(context,
- newTimePickerDialog.OnTimeSetListener()
- {
- publicvoidonTimeSet(TimePickerview,inthourOfDay,
- intminute)
- {
- 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(newOnClickListener(){
- publicvoidonClick(Viewarg0){
- repeatString2="";
- newAlertDialog.Builder(context)
- .setTitle(R.string.alert_dialog_multi_choice)
- .setMultiChoiceItems(R.array.select_dialog_items,
- newboolean[]{false,false,false,false,false,false,false},
- newDialogInterface.OnMultiChoiceClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton,
- booleanisChecked){
- /*Userclickedonacheckboxdosomestuff*/
- switch(whichButton){
- case0:if(isChecked){
- repeatArray2[0]=1;
- }else{
- repeatArray2[0]=0;
- }
- break;
- case1:if(isChecked){
- repeatArray2[1]=1;
- }else{
- repeatArray2[1]=0;
- }
- break;
- case2:if(isChecked){
- repeatArray2[2]=1;
- }else{
- repeatArray2[2]=0;
- }
- break;
- case3:if(isChecked){
- repeatArray2[3]=1;
- }else{
- repeatArray2[3]=0;
- }
- break;
- case4:if(isChecked){
- repeatArray2[4]=1;
- }else{
- repeatArray2[4]=0;
- }
- break;
- case5:if(isChecked){
- repeatArray2[5]=1;
- }else{
- repeatArray2[5]=0;
- }
- break;
- case6:if(isChecked){
- repeatArray2[6]=1;
- }else{
- repeatArray2[6]=0;
- }
- break;
- default:break;
- }
- }
- })
- .setPositiveButton(R.string.alert_dialog_ok,newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton){
- 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(inti=0;i<repeatArray1.length;i++){
- repeatArray2[i]=0;
- }
- }
- })
- .setNegativeButton(R.string.alert_dialog_cancel,newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton){
- /*UserclickedNosodosomestuff*/
- }
- })
- .show();
- }
- });
- //showDialog
- newAlertDialog.Builder(context)
- .setIcon(R.drawable.alarm_dialog)
- .setTitle(R.string.alarm_dialog_title)
- .setView(alarm1View)
- .setPositiveButton(R.string.alert_dialog_ok,newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton){
- if(isOpenInt2){
- isOpentime2="开";
- Intentintent2=newIntent(context,CallAlarm.class);
- intent2.putExtra("RESULT","alarm2");
- PendingIntentsender=PendingIntent.getBroadcast(
- context,1,intent2,PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManageram;
- am=(AlarmManager)activity.getSystemService(context.ALARM_SERVICE);
- intnowDay=Contants.getNowWeek();
- intsetDay=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);
- intdifferDay=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="关";
- Intentintent=newIntent(context,CallAlarm.class);
- intent.putExtra("RESULT","cancel");
- PendingIntentsender=PendingIntent.getBroadcast(
- context,1,intent,PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManageram;
- am=(AlarmManager)activity.getSystemService(context.ALARM_SERVICE);
- am.cancel(sender);
- Toast.makeText(context,R.string.alarm_delete2,
- Toast.LENGTH_SHORT).show();
- }
- String[]temStr=newString[7];
- temStr[0]=tmpS2;
- temStr[1]=repeatString2;
- temStr[2]=isOpentime2;
- dbHelper.updateAlarmColock(2+"",temStr);
- refreshDBHelper();
- }
- })
- .setNegativeButton(R.string.alert_dialog_cancel,newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,intwhichButton){
- refreshDBHelper();
- }
- })
- .create().show();
- }
- cursor.close();
- dbHelper.close();
- }
- privateStringformat(intx)
- {
- Strings=""+x;
- if(s.length()==1)s="0"+s;
- returns;
- }
- }
三、AlarmClockAdapter。java类,适配器的类:
- packagecom.cn.daming;
- importjava.util.List;
- importandroid.content.Context;
- importandroid.view.LayoutInflater;
- importandroid.view.View;
- importandroid.view.ViewGroup;
- importandroid.widget.BaseAdapter;
- importandroid.widget.ImageView;
- importandroid.widget.TextView;
- publicclassAlarmClockAdapterextendsBaseAdapter{
- privateLayoutInflaterlayoutInflater;
- privateContextcontext;
- privateList<String>alarm_ids;
- privateList<String>alarm_times;
- privateList<String>alarm_repeats;
- privateList<String>alarm_isopens;
- privateList<String>alarm_kinds;
- ZuJianzuJian;
- publicAlarmClockAdapter(Contextcontext,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);
- }
- publicintgetCount(){
- returnalarm_times.size();
- }
- publicObjectgetItem(intposition){
- returnalarm_times.get(position);
- }
- publiclonggetItemId(intposition){
- returnposition;
- }
- publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
- zuJian=newZuJian();
- 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);
- }
- }
- returnconvertView;
- }
- finalclassZuJian{
- publicTextViewalarmTitle;
- publicTextViewalarmTimeView;
- publicTextViewrepeatAlarmView;
- publicImageViewshowISOpenView;
- }
- }
四、CallAlarm。java类,接受广播BroadcastReceiver的类:
- packagecom.cn.daming;
- /*importclass*/
- importandroid.content.BroadcastReceiver;
- importandroid.content.Context;
- importandroid.content.Intent;
- importandroid.os.Bundle;
- importandroid.util.Log;
- /*AlarmReceiver*/
- publicclassCallAlarmextendsBroadcastReceiver
- {
- @Override
- publicvoidonReceive(finalContextcontext,Intentintent)
- {
- StringgetStr=intent.getExtras().getString("RESULT");
- Log.v("wangxianming","RESULT="+getStr);
- IntentalaramIntent=newIntent(context,AlarmAgainSetting.class);
- BundlebundleRet=newBundle();
- bundleRet.putString("STR_RESULT",getStr);
- alaramIntent.putExtras(bundleRet);
- alaramIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(alaramIntent);
- }
- }
五、Contants。java类,工具类:
- packagecom.cn.daming;
- importjava.text.SimpleDateFormat;
- importjava.util.ArrayList;
- importjava.util.Calendar;
- importjava.util.Date;
- importjava.util.HashMap;
- importjava.util.Map;
- importjava.util.Random;
- publicclassContants{
- //repeateddayofweekdefine
- publicstaticMap<String,Integer>mapWeek=newHashMap<String,Integer>();
- publicstaticvoidaddMapWeek(){
- mapWeek.put("周一",1);
- mapWeek.put("周二",2);
- mapWeek.put("周三",3);
- mapWeek.put("周四",4);
- mapWeek.put("周五",5);
- mapWeek.put("周六",6);
- mapWeek.put("周日",7);
- mapWeek.put("无重复",0);
- }
- publicstaticintgetMapWeek(Stringstr){
- Contants.addMapWeek();
- intdayOfMapWeek=0;
- if(str!=null){
- dayOfMapWeek=mapWeek.get(str);
- }
- returndayOfMapWeek;
- }
- publicstaticString[]getDatetimeString(){
- Datedate=newDate();
- String[]tempStr=newString[2];
- SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
- Stringstr=format.format(date);
- tempStr[0]=str.substring(0,10);
- tempStr[1]=str.substring(11,str.length());
- returntempStr;
- }
- publicstaticlonggetNowTimeMinuties()
- {
- returnSystem.currentTimeMillis();
- }
- publicstaticbooleandifferSetTimeAndNowTime(longsetTime)
- {
- if(setTime>=getNowTimeMinuties()){
- returntrue;
- }else{
- returnfalse;
- }
- }
- publicstaticlonggetDifferMillis(intdifferDays)
- {
- returndifferDays*24*60*60*1000;
- }
- //comparenowDaytonextDay
- publicstaticintcompareDayNowToNext(intnowDay,intnextDay){
- if(nextDay>nowDay){
- return(nextDay-nowDay);
- }elseif(nextDay==nowDay){
- return0;
- }else{
- return(7-(nowDay-nextDay));
- }
- }
- //turnthenowdaytoChina`sdayofWeek
- publicstaticMap<String,Integer>nowWeek=newHashMap<String,Integer>();
- publicstaticvoidaddNowWeek()
- {
- 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);
- }
- publicstaticintgetNowWeek()
- {
- CalendarnowCal=Calendar.getInstance();
- DatenowDate=newDate(System.currentTimeMillis());
- nowCal.setTime(nowDate);
- intnowNum=nowCal.get(nowCal.DAY_OF_WEEK);
- StringnowNumStr=String.valueOf(nowNum);
- Contants.addNowWeek();
- intnowDayOfWeek=0;
- if(nowNumStr!=null){
- nowDayOfWeek=nowWeek.get(nowNumStr);
- }
- returnnowDayOfWeek;
- }
- publicstaticintgetSetDay(Stringstr)
- {
- if(str.equals("周一")){
- return1;
- }
- if(str.equals("周二")){
- return2;
- }
- if(str.equals("周三")){
- return3;
- }
- if(str.equals("周四")){
- return4;
- }
- if(str.equals("周五")){
- return5;
- }
- if(str.equals("周六")){
- return6;
- }
- if(str.equals("周日")){
- return7;
- }
- return0;
- }
- publicstaticint[]getDayOfNum(String[]str)
- {
- int[]dayOfInt=newint[str.length];
- for(inti=0;i<str.length;i++){
- dayOfInt[i]=getSetDay(str[i]);
- }
- returndayOfInt;
- }
- publicstaticintgetResultDifferDay(int[]in,intnowDay)
- {
- intresult=0;
- for(inti=0;i<in.length;i++){
- if(in[i]>=nowDay){
- result=in[i];
- break;
- }
- }
- if(result==0){
- result=in[0];
- }
- returnresult;
- }
- publicstaticintgetResultDifferDay1(int[]in,intnowDay)
- {
- intresult=0;
- for(inti=0;i<in.length;i++){
- if(in[i]>nowDay){
- result=in[i];
- break;
- }
- }
- if(result==0){
- result=in[0];
- }
- returnresult;
- }
- }
六、DataBaseHelper。java类,数据库sqlite类:
- packagecom.cn.daming;
- importandroid.content.ContentValues;
- importandroid.content.Context;
- importandroid.database.Cursor;
- importandroid.database.sqlite.SQLiteDatabase;
- importandroid.database.sqlite.SQLiteOpenHelper;
- importandroid.util.Log;
- publicclassDataBaseHelperextendsSQLiteOpenHelper{
- privatefinalstaticStringDATABASE_NAME="alarm_db";
- privatefinalstaticintDATABASE_VERSION=1;
- privatefinalstaticStringALARM_COLOCK_TABLE="alarmcolock";
- publicfinalstaticStringALARM_ID="_id";
- publicfinalstaticStringALARM_TIME="alarmtime";//alarmtime
- publicfinalstaticStringALARM_REPEAT="alarmrepeat";//alarmrepeateisornot
- publicfinalstaticStringALARM_ISOPEN="alarmisopen";//alarmopenis0rnot
- publicfinalstaticStringALARM_KIND="alarmkind";//alarmiskind(1isshuangseqiu,2isdaletou)
- publicfinalstaticStringALARM_SPARE1="alarmspare1";//spare1
- publicfinalstaticStringALARM_SPARE2="alarmspare2";//spare2
- publicfinalstaticStringALARM_SPARE3="alarmspare3";//spare3
- publicDataBaseHelper(Contextcontext){
- super(context,DATABASE_NAME,null,DATABASE_VERSION);
- }
- @Override
- publicvoidonCreate(SQLiteDatabasedb){
- Stringsql="createtable"+ALARM_COLOCK_TABLE+"("
- +ALARM_ID+"integerprimarykeyautoincrement,"
- +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
- publicvoidonUpgrade(SQLiteDatabasedb,intarg1,intarg2){
- Stringsql="droptableifexists"+ALARM_COLOCK_TABLE;
- db.execSQL(sql);
- }
- //theactioninAlarmColocktable
- publiclonginsertAlarmColock(String[]strArray)
- {
- SQLiteDatabasedb=this.getWritableDatabase();
- ContentValuesconv=newContentValues();
- conv.put(ALARM_TIME,strArray[0]);
- conv.put(ALARM_REPEAT,strArray[1]);
- conv.put(ALARM_ISOPEN,strArray[2]);
- conv.put(ALARM_KIND,strArray[3]);
- returndb.insert(ALARM_COLOCK_TABLE,null,conv);
- }
- publicCursorselectAlarmColock(){
- SQLiteDatabasedb=this.getReadableDatabase();
- Cursorcursor=db.query(ALARM_COLOCK_TABLE,null,null,null,null,null,null);
- returncursor;
- }
- publicCursorgetAlarmColock(Stringid){
- SQLiteDatabasedb=this.getReadableDatabase();
- Stringwhere=ALARM_ID+"=?";
- String[]whereValues={id};
- Cursorcursor=db.query(ALARM_COLOCK_TABLE,null,where,whereValues,null,null,null);
- returncursor;
- }
- publicvoiddeleteAlarmColock(Stringid){
- SQLiteDatabasedb=this.getWritableDatabase();
- Stringwhere=ALARM_ID+"=?";
- String[]whereValues={id};
- db.delete(ALARM_COLOCK_TABLE,where,whereValues);
- }
- publicintupdateAlarmColock(Stringid,String[]strArray){
- SQLiteDatabasedb=this.getWritableDatabase();
- Stringwhere=ALARM_ID+"=?";
- String[]whereValues={id};
- ContentValuescv=newContentValues();
- 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"));
- returndb.update(ALARM_COLOCK_TABLE,cv,where,whereValues);
- }
- }
七、AlarmAgainSetting。java类,闹钟重复设置的类:
- packagecom.cn.daming;
- importandroid.app.Activity;
- importandroid.app.AlarmManager;
- importandroid.app.AlertDialog;
- importandroid.app.PendingIntent;
- importandroid.content.DialogInterface;
- importandroid.content.Intent;
- importandroid.database.Cursor;
- importandroid.os.Bundle;
- importandroid.widget.Toast;
- publicclassAlarmAgainSettingextendsActivity{
- privateDataBaseHelperdbHelper;
- privateCursorcursor;
- IntentgetAlarmAgainSetting;
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- getAlarmAgainSetting=AlarmAgainSetting.this.getIntent();
- StringgetAlarmAgainSettingStr=getAlarmAgainSetting.getExtras().getString("STR_RESULT");
- dbHelper=newDataBaseHelper(this);
- if(getAlarmAgainSettingStr.equals("alarm1")){
- IntentagainIntent=newIntent(AlarmAgainSetting.this,CallAlarm.class);
- againIntent.putExtra("RESULT","alarm1");
- PendingIntentsender=PendingIntent.getBroadcast(
- AlarmAgainSetting.this,0,againIntent,PendingIntent.FLAG_UPDATE_CURRENT);
- AlarmManageram;
- am=(AlarmManager)getSystemService(ALARM_SERVICE);
- intnowDay=Contants.getNowWeek();
- intsetDay=0;
- cursor=dbHelper.selectAlarmColock();
- Stringstr1=null;
- intcount1=cursor.getCount();
- if(count1>0){
- for(inti=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);
- intdifferDay=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*/
- IntentagainIntent=newIntent(AlarmAgainSetting.this,CallAlarm.class);
- againIntent.putExtra("RESULT","alarm2");
- /*PendingIntent*/
- PendingIntentsender=PendingIntent.getBroadcast(
- AlarmAgainSetting.this,1,againIntent,PendingIntent.FLAG_UPDATE_CURRENT);
- /*AlarmManager.RTC_WAKEUP
- **/
- AlarmManageram;
- am=(AlarmManager)getSystemService(ALARM_SERVICE);
- intnowDay=Contants.getNowWeek();
- intsetDay=0;
- cursor=dbHelper.selectAlarmColock();
- Stringstr2=null;
- intcount2=cursor.getCount();
- if(count2>0){
- for(inti=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);
- intdifferDay=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();
- newAlertDialog.Builder(this)
- .setIcon(R.drawable.clock)
- .setTitle("大明闹钟时间到了!!")
- .setMessage("你使用大明闹钟时间到了!!!")
- .setPositiveButton("确定",
- newDialogInterface.OnClickListener()
- {
- publicvoidonClick(DialogInterfacedialog,intwhichButton)
- {
- /*AlarmAlertActivity*/
- finish();
- }
- }).setNegativeButton("取消",
- newDialogInterface.OnClickListener()
- {
- publicvoidonClick(DialogInterfacedialog,intwhichButton)
- {
- /*AlarmAlertActivity*/
- finish();
- }
- }).show();
- }
- }
布局文件
一、main。xml布局文件
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns: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"
- >
- <LinearLayoutandroid:id="@+id/box"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- </LinearLayout>
- </LinearLayout>
二、alarm_clock.xml布局文件
- <?xmlversion="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布局文件
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns: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布局文件
- <?xmlversion="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文件
- <?xmlversion="1.0"encoding="utf-8"?>
- <resources>
- <string-arrayname="select_dialog_items">
- <item>周一</item>
- <item>周二</item>
- <item>周三</item>
- <item>周四</item>
- <item>周五</item>
- <item>周六</item>
- <item>周日</item>
- </string-array>
- </resources>
二、color.xml文件
- <?xmlversion="1.0"encoding="utf-8"?>
- <resources>
- <drawablename="white">#FFFFFFFF</drawable>
- <drawablename="black">#000000</drawable>
- <drawablename="blue">#0000FF</drawable>
- <drawablename="red">#FF0000</drawable>
- <drawablename="dackgray">#666666</drawable>
- <drawablename="yellow">#FFFFFF00</drawable>
- </resources>
三、string.xml文件
- <?xmlversion="1.0"encoding="utf-8"?>
- <resources>
- <stringname="hello">HelloWorld,MainActivity!</string>
- <stringname="app_name">AlarmApp</string>
- <stringname="alarm_list">大明闹钟</string>
- <stringname="not_dbcursor_values">数据库中没有值,请设置你的闹钟。。。。</string>
- <stringname="str_isopen_text">是否开启闹钟</string>
- <stringname="str_title1">设置闹钟</string>
- <stringname="str_button1">设置时间</string>
- <stringname="str_default">目前无设置</string>
- <stringname="repeat_button">设置重复</string>
- <stringname="alert_dialog_ok">确定</string>
- <stringname="alert_dialog_cancel">取消</string>
- <stringname="alarm_dialog_title">闹钟设置</string>
- <stringname="alert_dialog_multi_choice">重复闹钟设置</string>
- <stringname="alarm_time_come">您使用大明闹钟设置的闹钟时间到了!!!</string>
- <stringname="alarm_delete1">大明闹钟一删除成功!</string>
- <stringname="alarm_delete2">大明闹钟二删除成功!</string>
- <stringname="alarm_set2">大明闹钟二时间为:</string>
- <stringname="not_time_right">闹钟时间设置不对,请选择周几重复!</string>
- </resources>
- <strong><spanstyle="font-size:24px;color:#660000;">注意:广播一定要在Manifest中注册</span></strong>
AndroidManifest.xml文件:
- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.cn.daming"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdkandroid:minSdkVersion="8"/>
- <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
- <!--註冊receiverCallAlarm-->
- <receiverandroid:name=".CallAlarm"android:process=":remote"/>
- <activityandroid:name=".MainActivity"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- <activityandroid:name=".AlarmAgainSetting"/>
- </application>
- </manifest>
该博客分享了一个Android闹钟程序,提供了源码下载链接。详细展示了程序各界面,如开始界面、设置时间和重复的dialog界面等。还给出了MainActivity.java、AlarmClockView.java等类的代码,以及多个布局文件和value目录下文件的内容,同时提醒广播要在Manifest中注册。
588

被折叠的 条评论
为什么被折叠?



