Aufgerufen wird über
1Intent i = new Intent(this, PopupDialog.class);
2 i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
3 startActivity(i);
Und das hier ist der Code des Dialogs
1package net.krisdoff.SMSReceiver;
2
3import android.app.Activity;
4import android.app.AlertDialog;
5import android.app.Dialog;
6import android.content.DialogInterface;
7import android.content.Intent;
8import android.os.Bundle;
9
10public class PopupDialog extends Activity{
11 private static ToolsProvider tp = null;
12
13 @Override
14 public void onCreate(Bundle savedInstanceState) {
15 super.onCreate(savedInstanceState);
16 showDialog(1);
17 }
18
19 protected Dialog onCreateDialog(int id){
20 switch(id){
21 case 1:
22 ToolsProvider.dLog("Started buildAlertDialog()");
23 AlertDialog.Builder builder = new AlertDialog.Builder(this);
24 builder.setIcon(R.drawable.ic_launcher_popup)
25 // .setCancelable(false)
26 .setPositiveButton(getString(R.string.actionOpen), new DialogInterface.OnClickListener() {
27 public void onClick(DialogInterface dialog, int id) {
28 ReminderService.cancelTimer();
29 Intent sI = new Intent(getApplicationContext(), ReminderService.class);
30 stopService(sI);
31 StatusProvider.removeAllBits();
32 tp.cancelNotif(tp.getNotifID());
33 if(tp.wl.isHeld())
34 tp.wl.release();
35 startActivity(tp.createSMSintent());
36 finish();
37 }
38 })
39 .setNegativeButton(getString(R.string.actionClose), new DialogInterface.OnClickListener() {
40 public void onClick(DialogInterface dialog, int id) {
41 if(tp.getBoolean("popUpClearNotification")){
42 ReminderService.cancelTimer();
43 Intent sI = new Intent(getApplicationContext(), ReminderService.class);
44 stopService(sI);
45 StatusProvider.removeAllBits();
46 tp.cancelNotif(tp.getNotifID());
47 }else
48 StatusProvider.removeBit(StatusProvider.POPUP_ACTIVE);
49 if(tp.wl.isHeld())
50 tp.wl.release();
51 finish();
52 }
53 })
54 .setOnCancelListener(new DialogInterface.OnCancelListener(){
55 public void onCancel(DialogInterface dialog){
56 StatusProvider.removeBit(StatusProvider.POPUP_ACTIVE);
57 if(tp.wl.isHeld())
58 tp.wl.release();
59 finish();
60 }
61 });
62 if(tp.getBoolean("popUpQuickReply")){
63 builder.setNeutralButton(getString(R.string.actionReply), new DialogInterface.OnClickListener() {
64 public void onClick(DialogInterface dialog, int id) {
65 ReminderService.cancelTimer();
66 Intent sI = new Intent(getApplicationContext(), ReminderService.class);
67 stopService(sI);
68 StatusProvider.removeAllBits();
69 tp.cancelNotif(tp.getNotifID());
70 Intent i = new Intent(getApplicationContext(), QuickReplyDialog.class)
71 .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
72 startActivity(i);
73 finish();
74 }
75 });
76 }
77 if(!tp.getBoolean("generalPrivacy")){
78 builder.setTitle(tp.rName)
79 .setMessage(tp.rMessage);
80 }
81 else{
82 builder.setTitle(getString(R.string.PrivacyTitle))
83 .setMessage(getString(R.string.PrivacyMessage));
84 }
85 AlertDialog alert = builder.create();
86 ToolsProvider.dLog("Finished buildAlertDialog()");
87 return alert;
88 case 2:
89 AlertDialog.Builder b = new AlertDialog.Builder(this);
90 b.setTitle("Hallo")
91 .setMessage("Nachricht");
92 return b.create();
93 default:
94 return null;
95 }
96 }
97
98 public static boolean setToolsProvider(ToolsProvider toPr){
99 tp = toPr;
100 return true;
101 }
102
103 @Override
104 public void onDestroy(){
105 super.onDestroy();
106
107 StatusProvider.removeBit(StatusProvider.POPUP_ACTIVE);
108
109 if(tp.wl.isHeld())
110 tp.wl.release();
111 }
112}
Der case 2 ist hierbei nur testweise, liefert allerdings auch das Standard Android Dialog-Layout.
Ich hatte den Dialog auch mal einfach als normale Methode (nicht in onCreateDialog), machte aber keinen Unterschied. Erstaunlich für mich ist dabei auch, dass ein anderer Dialog (siehe Code unten) "normal", sprich mit richtigem Theme aufgerufen wird, wenn ich im Intent nur PopupDialog durch AboutDialog ersetze.
1package net.krisdoff.SMSReceiver;
2
3import android.app.Activity;
4import android.app.AlertDialog;
5import android.content.DialogInterface;
6import android.os.Bundle;
7
8public class AboutDialog extends Activity{
9 @Override
10 public void onCreate(Bundle savedInstanceState){
11 super.onCreate(savedInstanceState);
12 String title = getString(R.string.app_name)+" "+getString(R.string.app_version);
13 String message = getString(R.string.app_about);
14 buildDialog(title, message).show();
15 }
16
17 private AlertDialog buildDialog(String title, String message){
18 AlertDialog.Builder builder = new AlertDialog.Builder(this);
19 builder.setIcon(R.drawable.ic_launcher_config)
20 .setCancelable(false)
21 .setTitle(title)
22 .setMessage(message);
23 builder.setNeutralButton(getString(R.string.actionClose), new DialogInterface.OnClickListener() {
24 public void onClick(DialogInterface dialog, int id) {
25 finish();
26 }
27 });
28 AlertDialog alert = builder.create();
29 return alert;
30 }
31}
Hier ist zwar noch nicht die onCreateDialog realisiert, aber wie gesagt machte das beim PopupDialog keinen Unterschied.
:/
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.