回答編集履歴

1

コード付加説明

2017/09/16 15:32

投稿

swordone
swordone

スコア20649

test CHANGED
@@ -1 +1,93 @@
1
1
  onCreateメソッドが4行で終わっています。そのため、`int myHand = 0;`からフィールド宣言の場所になっています。クラス内のブロックに囲まれていない場所は**フィールド宣言およびその初期化**しかできず、switch文などは使用できません。
2
+
3
+
4
+
5
+ ```java
6
+
7
+ package com.example.keita.janken;
8
+
9
+
10
+
11
+ import android.content.Intent;
12
+
13
+ import android.os.Bundle;
14
+
15
+ import android.support.v7.app.AppCompatActivity;
16
+
17
+ import android.widget.ImageView;
18
+
19
+ import android.widget.TextView;
20
+
21
+
22
+
23
+ public class ResultActivity extends AppCompatActivity {
24
+
25
+ final int JANKEN_GU = 0;
26
+
27
+ final int JANKEN_CHOKI = 1;
28
+
29
+ final int JANKEN_PA =2;
30
+
31
+
32
+
33
+ @Override
34
+
35
+ protected void onCreate(Bundle savedInstanceState) {
36
+
37
+ super.onCreate(savedInstanceState);
38
+
39
+ setContentView(R.layout.activity_result);
40
+
41
+ }
42
+
43
+
44
+
45
+ // ここからメソッド外のため、フィールド宣言および初期化しかできない場所
46
+
47
+ int myHand = 0;
48
+
49
+ Intent intent = getIntent();
50
+
51
+ int id = intent.getIntExtra("MY_HAND", 0);
52
+
53
+ ImageView myHandImageView = (ImageView) findViewById(R.id.my_hand_image);
54
+
55
+ // その場所にこのような「処理」を書くことは不可能
56
+
57
+ switch (id) {
58
+
59
+ case R.id.gu:
60
+
61
+ myHandImageView.setImageResource(R.drawable.gu);
62
+
63
+ myHand = JANKEN_GU;
64
+
65
+ break;
66
+
67
+ case R.id.choki:
68
+
69
+ myHandImageView.setImageResource(R.drawable.choki);
70
+
71
+ myHand = JANKEN_CHOKI;
72
+
73
+ break;
74
+
75
+ case R.id.pa:
76
+
77
+ myHandImageView.setImageResource(R.drawable.pa);
78
+
79
+ myHand = JANKEN_PA;
80
+
81
+ break;
82
+
83
+ default:
84
+
85
+ myHand = JANKEN_GU;
86
+
87
+ break;
88
+
89
+ }
90
+
91
+ }
92
+
93
+ ```