N
newperson
Neues Mitglied
- 1
Hallo
Auf der MainActivity befindet sich eine ListView und eine Button(Set_Alarm).
Mit dem Button(Set_Alarm) komme ich zu der zweiten Activity(DetailsActivty). Auf dieser Activity wird der Alarm gesetzt und danach komme ich wieder auf die MainActivity zurück.
Mit dem setOnItemClickListener komme ich zu der dritten Activity(DeleteActivty). Auf dieser Activity soll der Alarm wieder gelöscht werden, aber nur der eine und nicht die ganze ListView.
Leider kann ich nur bis jetzt die Alarme setzten, aber das Löschen will einfach nicht funktionieren. Ich habe schon beim
PendingIntent.getBroadcast die ID gesetzt, aber es funktioniert einfach nicht. Ich habe keine Ahnung was ich hier falsch mache. Ich hoffe IHR könnt mir HELFEN.
der Code:
AlarmReceiver:
DetailsActivity nur ein Teil davon:
DeleteAcitvity auch nur ein Teil davon:
Auf der MainActivity befindet sich eine ListView und eine Button(Set_Alarm).
Mit dem Button(Set_Alarm) komme ich zu der zweiten Activity(DetailsActivty). Auf dieser Activity wird der Alarm gesetzt und danach komme ich wieder auf die MainActivity zurück.
Mit dem setOnItemClickListener komme ich zu der dritten Activity(DeleteActivty). Auf dieser Activity soll der Alarm wieder gelöscht werden, aber nur der eine und nicht die ganze ListView.
Leider kann ich nur bis jetzt die Alarme setzten, aber das Löschen will einfach nicht funktionieren. Ich habe schon beim
PendingIntent.getBroadcast die ID gesetzt, aber es funktioniert einfach nicht. Ich habe keine Ahnung was ich hier falsch mache. Ich hoffe IHR könnt mir HELFEN.
der Code:
AlarmReceiver:
Code:
public class AlarmReceiver extends BroadcastReceiver{
static AlarmManager alarmManager;
PendingIntent pendingIntent;
Model model = new Model();
final int _id = (int) System.currentTimeMillis();
int rowId;
@Override
public void onReceive(Context context, Intent intent) {
model.id = _id;
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
context).setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Alarm!!!!!")
.setTicker(null).setDefaults(Notification.DEFAULT_SOUND)
.setAutoCancel(true);
Intent notificationIntent = new Intent(context, MainActivity.class);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT
| PendingIntent.FLAG_ONE_SHOT);
mBuilder.setContentIntent(contentIntent);
NotificationManager mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
}
//setAlarm
public void SetAlarm(Context context, String sDate, String sTime)
{
Intent myIntent = new Intent(context, AlarmReceiver.class);
myIntent.putExtra("row_id", rowId);
pendingIntent = PendingIntent.getBroadcast(context, _id, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
model.id = _id;
model.date = sDate;
model.time = sTime;
String noticeDate = sDate;
String noticeTime = sTime;
Calendar calendar = Calendar.getInstance();
calendar.set(Integer.parseInt(noticeDate.split("-")[0]),
Integer.parseInt(model.date.split("-")[1]) - 1,
Integer.parseInt(model.date.split("-")[2]),
Integer.parseInt(model.time.split(":")[0]),
Integer.parseInt(model.time.split(":")[1]));
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
// CancelAlarm
public void CancelAlarm(Context context) {
Intent myIntent = new Intent(context, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(context, _id, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
pendingIntent.cancel();
}
}
DetailsActivity nur ein Teil davon:
Code:
private AlarmReceiver alarm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
alarm = new AlarmReceiver();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btnSave:
Model model = new Model();
Context context = this.getApplicationContext();
if(!TextUtils.isEmpty(btnDate.getText().toString()) || !TextUtils.isEmpty(btnTime.getText().toString())){
model.date = btnDate.getText().toString();
model.time = btnTime.getText().toString();
myAdapter.insertRow(model.date, model.time);
}
//Alarm setzten!!!!!
alarm.SetAlarm(context, btnDate.getText().toString(), btnTime.getText().toString());
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
break;
case R.id.btnDatum:
showDialog(DATE_DIALOG_ID);
break;
case R.id.btnUhrzeit:
showDialog(TIME_DIALOG_ID);
break;
}
}
DeleteAcitvity auch nur ein Teil davon:
Code:
private AlarmReceiver alarm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
alarm = new AlarmReceiver();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnDelete_modify:
Context context = this.getApplicationContext();
alarm.CancelAlarm(context);
myDbAdapter.deleteOneRecord(rowId);
Log.v(TAG, "gelöscht");
Intent intent1 = new Intent(this, MainActivity.class);
startActivity(intent1);
finish();
break;
}
}