teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

情報の追加

2017/05/11 00:16

投稿

RNagamatsu
RNagamatsu

スコア13

title CHANGED
File without changes
body CHANGED
@@ -20,7 +20,7 @@
20
20
  PhoneReceiverのコードは下に記載しています。
21
21
  それとも根本的にやり方を変えた方がよいのでしょうか。
22
22
 
23
- ※捕捉
23
+ ※捕捉
24
24
  あるサイトでこのような解決方法を見つけたのですが、
25
25
  ```Java
26
26
  public void showWarningAlert(Context context) { //Added argument
@@ -38,6 +38,31 @@
38
38
  }
39
39
  ```
40
40
  結局アプリは強制終了する状態です。alertDialog.show()のところでエラーが出ています。
41
+
42
+ ※捕捉2
43
+ Logcatの内容です。PhoneReceiverに青文字がついています。
44
+ ```Java
45
+ 05-11 09:13:42.101 26582-26582/com.example.ma2ri.newstage E/AndroidRuntime: FATAL EXCEPTION: main
46
+ Process: com.example.ma2ri.newstage, PID: 26582
47
+ java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
48
+ at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:343)
49
+ at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:312)
50
+ at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:277)
51
+ at android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:80)
52
+ at android.support.v7.app.AlertController.installContent(AlertController.java:214)
53
+ at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:256)
54
+ at android.app.Dialog.dispatchOnCreate(Dialog.java:578)
55
+ at android.app.Dialog.show(Dialog.java:314)
56
+ at com.example.ma2ri.newstage.PhoneReceiver.showWarningAlert(PhoneReceiver.java:173)
57
+ at com.example.ma2ri.newstage.PhoneReceiver.onCallStateChanged(PhoneReceiver.java:60)
58
+ at android.telephony.PhoneStateListener$1.handleMessage(PhoneStateListener.java:323)
59
+ at android.os.Handler.dispatchMessage(Handler.java:102)
60
+ at android.os.Looper.loop(Looper.java:158)
61
+ at android.app.ActivityThread.main(ActivityThread.java:7237)
62
+ at java.lang.reflect.Method.invoke(Native Method)
63
+ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
64
+ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
65
+ ```
41
66
 
42
67
 
43
68
  ```Java

2

書式の改善

2017/05/11 00:16

投稿

RNagamatsu
RNagamatsu

スコア13

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,14 @@
1
1
  着信が入った時にダイアログを表示するアプリを作っていまして、素人ながらもいろいろなサイトを参考にしながらそれなりに形にはなっているのですが、ダイアログの表示でもう1か月以上滞っていて、ヒントだけでも頂けると助かります。
2
2
 
3
3
  着信の状態を捕捉するクラス(PhoneReceiver.class)を下の様に作っていまして、着信が入ると
4
+ ```Java
4
5
  AlertDialog.Builder builder = new AlertDialog.Builder(context);
5
6
  builder.setMessage(R.string.dialog_message)
6
7
  .setTitle(R.string.dialog_title)
7
8
  .setPositiveButton(R.string.dialog_button, null)
8
9
  .setView(layout);
9
10
  builder.show();
11
+ ```
10
12
  という形でAlertDialogを表示させようとしましたが、アプリが強制終了します。
11
13
  PhoneReceiverクラスがActivityクラスじゃないということが理由なのだろうと思いつつも、具体的な解決策を出せないでいます。
12
14
  androidの公式サイトを見れば、DialogFragmentを推奨されていたので、同様にPhoneReceiverクラスがActivityでもFragmentクラスでもないために表示されないものと思います。
@@ -20,6 +22,7 @@
20
22
 
21
23
  ※捕捉
22
24
  あるサイトでこのような解決方法を見つけたのですが、
25
+ ```Java
23
26
  public void showWarningAlert(Context context) { //Added argument
24
27
  AlertDialog alertDialog = new AlertDialog.Builder(context).create(); //Use context
25
28
  alertDialog.setTitle("Warning");
@@ -33,9 +36,11 @@
33
36
  alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
34
37
  alertDialog.show();
35
38
  }
39
+ ```
36
40
  結局アプリは強制終了する状態です。alertDialog.show()のところでエラーが出ています。
37
41
 
38
42
 
43
+ ```Java
39
44
  class PhoneReceiver extends PhoneStateListener {
40
45
  private int totalCount = 0;
41
46
  private Context context;
@@ -96,4 +101,5 @@
96
101
  return 0;
97
102
  }
98
103
  }
104
+ ```
99
105
  _

1

情報の追加

2017/05/11 00:10

投稿

RNagamatsu
RNagamatsu

スコア13

title CHANGED
File without changes
body CHANGED
@@ -17,6 +17,23 @@
17
17
  ですので、元のとおり、AlertDialogを表示する方法、ヒント等ありましたら、教えていただきたく質問いたします。
18
18
  PhoneReceiverのコードは下に記載しています。
19
19
  それとも根本的にやり方を変えた方がよいのでしょうか。
20
+
21
+ ※捕捉
22
+ あるサイトでこのような解決方法を見つけたのですが、
23
+ public void showWarningAlert(Context context) { //Added argument
24
+ AlertDialog alertDialog = new AlertDialog.Builder(context).create(); //Use context
25
+ alertDialog.setTitle("Warning");
26
+ alertDialog.setMessage("You are currently in a battle");
27
+ alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
28
+ new DialogInterface.OnClickListener() {
29
+ public void onClick(DialogInterface dialog, int which) {
30
+ dialog.dismiss();
31
+ }
32
+ });
33
+ alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
34
+ alertDialog.show();
35
+ }
36
+ 結局アプリは強制終了する状態です。alertDialog.show()のところでエラーが出ています。
20
37
 
21
38
 
22
39
  class PhoneReceiver extends PhoneStateListener {