複数のアラームを備えた目覚まし時計を開発したいと考えています。同時に5つのアラームを出す必要があると仮定すると、各アラームに特定のIDを与えることができないので、ユーザーが対応するキャンセルボタンをクリックしたときにその特定のアラームをキャンセルできます私のコードはこのようなものです
on1=(ToggleButton) findViewById(R.id.toggleButton1);
on2=(ToggleButton) findViewById(R.id.toggleButton2);
on3=(ToggleButton) findViewById(R.id.toggleButton3);
on4=(ToggleButton) findViewById(R.id.toggleButton4);
on5=(ToggleButton) findViewById(R.id.toggleButton5);
on1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
en=on1.isChecked();
getdeta(1, en);
setalarm(en, m, h,1);
}
});
on2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
en=on2.isChecked();
getdeta(2, en);
setalarm(en, m, h,2);
}
});
on3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
en=on3.isChecked();
getdeta(3, en);
setalarm(en, m, h,3);
}
});
on4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
en=on4.isChecked();
getdeta(4, en);
setalarm(en, m, h,4);
}
});
on5.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
en=on5.isChecked();
getdeta(5, en);
setalarm(en, m, h,5);
}
});
方法は次のとおりです。
public void getdeta(int number,boolean enable){
String MYPR=(""+number);
if(enable=true){
SharedPreferences alarm=getSharedPreferences(MYPR, 0);
SharedPreferences.Editor edit=alarm.edit();
edit.putBoolean("en", true);
edit.commit();
}
else{
SharedPreferences alarm=getSharedPreferences(MYPR, 0);
SharedPreferences.Editor edit=alarm.edit();
edit.putBoolean("en", false);
edit.commit();
}
SharedPreferences set1=getSharedPreferences(MYPR, 0);
h=set1.getInt("Ahh", 00);
m=set1.getInt("Amm", 00);
en=set1.getBoolean("en", false);
}
public void setalarm (boolean en,int mm,int hh,int number)
{
// meathod to set the alarm time and its enability
if(en==true)
{ //create an alarm calendar
Calendar Alarm=Calendar.getInstance();
Alarm.set(Calendar.MILLISECOND, 0);
Alarm.set(Calendar.SECOND, 0);
Alarm.set(Calendar.MINUTE, mm);
Alarm.set(Calendar.HOUR_OF_DAY,hh);
Alarm.set(Calendar.DAY_OF_WEEK, 2);
//creating and assigning value to alarm manager class
Intent AlarmIntent = new Intent(Multiple.this, AlarmReciever.class);
AlarmManager AlmMgr = (AlarmManager)getSystemService(ALARM_SERVICE);
PendingIntent Sender = PendingIntent.getBroadcast(Multiple.this, number, AlarmIntent, 0);
AlmMgr.set(AlarmManager.RTC_WAKEUP, Alarm.getTimeInMillis(), Sender);
}
else
{ //Build Intent/Pending Intent for canceling the alarm
Intent AlarmIntent = new Intent(Multiple.this, AlarmReciever.class);
AlarmManager AlmMgr = (AlarmManager)getSystemService(ALARM_SERVICE);
PendingIntent Sender = PendingIntent.getBroadcast(Multiple.this, number, AlarmIntent, 0);
AlmMgr.cancel(Sender);
}
}
目覚まし時計の作成を手伝ってくれる人はいますか?