質問編集履歴
3
情報の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
|
45
|
-
※捕捉
|
45
|
+
※捕捉1
|
46
46
|
|
47
47
|
あるサイトでこのような解決方法を見つけたのですが、
|
48
48
|
|
@@ -78,6 +78,56 @@
|
|
78
78
|
|
79
79
|
結局アプリは強制終了する状態です。alertDialog.show()のところでエラーが出ています。
|
80
80
|
|
81
|
+
|
82
|
+
|
83
|
+
※捕捉2
|
84
|
+
|
85
|
+
Logcatの内容です。PhoneReceiverに青文字がついています。
|
86
|
+
|
87
|
+
```Java
|
88
|
+
|
89
|
+
05-11 09:13:42.101 26582-26582/com.example.ma2ri.newstage E/AndroidRuntime: FATAL EXCEPTION: main
|
90
|
+
|
91
|
+
Process: com.example.ma2ri.newstage, PID: 26582
|
92
|
+
|
93
|
+
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
|
94
|
+
|
95
|
+
at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:343)
|
96
|
+
|
97
|
+
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:312)
|
98
|
+
|
99
|
+
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:277)
|
100
|
+
|
101
|
+
at android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:80)
|
102
|
+
|
103
|
+
at android.support.v7.app.AlertController.installContent(AlertController.java:214)
|
104
|
+
|
105
|
+
at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:256)
|
106
|
+
|
107
|
+
at android.app.Dialog.dispatchOnCreate(Dialog.java:578)
|
108
|
+
|
109
|
+
at android.app.Dialog.show(Dialog.java:314)
|
110
|
+
|
111
|
+
at com.example.ma2ri.newstage.PhoneReceiver.showWarningAlert(PhoneReceiver.java:173)
|
112
|
+
|
113
|
+
at com.example.ma2ri.newstage.PhoneReceiver.onCallStateChanged(PhoneReceiver.java:60)
|
114
|
+
|
115
|
+
at android.telephony.PhoneStateListener$1.handleMessage(PhoneStateListener.java:323)
|
116
|
+
|
117
|
+
at android.os.Handler.dispatchMessage(Handler.java:102)
|
118
|
+
|
119
|
+
at android.os.Looper.loop(Looper.java:158)
|
120
|
+
|
121
|
+
at android.app.ActivityThread.main(ActivityThread.java:7237)
|
122
|
+
|
123
|
+
at java.lang.reflect.Method.invoke(Native Method)
|
124
|
+
|
125
|
+
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
|
126
|
+
|
127
|
+
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
|
128
|
+
|
129
|
+
```
|
130
|
+
|
81
131
|
|
82
132
|
|
83
133
|
|
2
書式の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
|
5
5
|
着信の状態を捕捉するクラス(PhoneReceiver.class)を下の様に作っていまして、着信が入ると
|
6
6
|
|
7
|
+
```Java
|
8
|
+
|
7
9
|
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
8
10
|
|
9
11
|
builder.setMessage(R.string.dialog_message)
|
@@ -16,6 +18,8 @@
|
|
16
18
|
|
17
19
|
builder.show();
|
18
20
|
|
21
|
+
```
|
22
|
+
|
19
23
|
という形でAlertDialogを表示させようとしましたが、アプリが強制終了します。
|
20
24
|
|
21
25
|
PhoneReceiverクラスがActivityクラスじゃないということが理由なのだろうと思いつつも、具体的な解決策を出せないでいます。
|
@@ -42,6 +46,8 @@
|
|
42
46
|
|
43
47
|
あるサイトでこのような解決方法を見つけたのですが、
|
44
48
|
|
49
|
+
```Java
|
50
|
+
|
45
51
|
public void showWarningAlert(Context context) { //Added argument
|
46
52
|
|
47
53
|
AlertDialog alertDialog = new AlertDialog.Builder(context).create(); //Use context
|
@@ -68,12 +74,16 @@
|
|
68
74
|
|
69
75
|
}
|
70
76
|
|
77
|
+
```
|
78
|
+
|
71
79
|
結局アプリは強制終了する状態です。alertDialog.show()のところでエラーが出ています。
|
72
80
|
|
73
81
|
|
74
82
|
|
75
83
|
|
76
84
|
|
85
|
+
```Java
|
86
|
+
|
77
87
|
class PhoneReceiver extends PhoneStateListener {
|
78
88
|
|
79
89
|
private int totalCount = 0;
|
@@ -194,4 +204,6 @@
|
|
194
204
|
|
195
205
|
}
|
196
206
|
|
207
|
+
```
|
208
|
+
|
197
209
|
_
|
1
情報の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -35,6 +35,40 @@
|
|
35
35
|
PhoneReceiverのコードは下に記載しています。
|
36
36
|
|
37
37
|
それとも根本的にやり方を変えた方がよいのでしょうか。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
※捕捉
|
42
|
+
|
43
|
+
あるサイトでこのような解決方法を見つけたのですが、
|
44
|
+
|
45
|
+
public void showWarningAlert(Context context) { //Added argument
|
46
|
+
|
47
|
+
AlertDialog alertDialog = new AlertDialog.Builder(context).create(); //Use context
|
48
|
+
|
49
|
+
alertDialog.setTitle("Warning");
|
50
|
+
|
51
|
+
alertDialog.setMessage("You are currently in a battle");
|
52
|
+
|
53
|
+
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
|
54
|
+
|
55
|
+
new DialogInterface.OnClickListener() {
|
56
|
+
|
57
|
+
public void onClick(DialogInterface dialog, int which) {
|
58
|
+
|
59
|
+
dialog.dismiss();
|
60
|
+
|
61
|
+
}
|
62
|
+
|
63
|
+
});
|
64
|
+
|
65
|
+
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
|
66
|
+
|
67
|
+
alertDialog.show();
|
68
|
+
|
69
|
+
}
|
70
|
+
|
71
|
+
結局アプリは強制終了する状態です。alertDialog.show()のところでエラーが出ています。
|
38
72
|
|
39
73
|
|
40
74
|
|