回答編集履歴

1

コードに対しての指摘

2015/02/09 16:10

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -3,3 +3,63 @@
3
3
  ファイルから読むのではなく、こちらのようにリソースに定義して読み込むといいのではないでしょうか
4
4
 
5
5
  ファイルの読み取りに付き物の例外処理も不要ですし、管理も楽です。
6
+
7
+
8
+
9
+ 以下、ちょっとコードで気になるところを指摘します。
10
+
11
+ ```lang-java
12
+
13
+ MediaPlayer chime = MediaPlayer.create(getContext(), R.raw.test);
14
+
15
+ ```
16
+
17
+ 初期化子のように書いてますけど、多分これが無理です。
18
+
19
+ これをやるならコンストラクタでやるべきでしょうね
20
+
21
+ ```lang-java
22
+
23
+ class SampleView extends View {
24
+
25
+ MediaPlayer chime;
26
+
27
+ //略
28
+
29
+ public SampleView(Context context){
30
+
31
+ super(context)
32
+
33
+ chime = MediaPlayer.create(getContext(), R.raw.test);
34
+
35
+ }
36
+
37
+ //略
38
+
39
+ }
40
+
41
+ ```
42
+
43
+ 場合によっては、フィールド宣言で計算を使っているものもコンストラクタ内でやるべきかもしれません。
44
+
45
+ ```lang-java
46
+
47
+ //TODO: 時刻を取得する
48
+
49
+ Calendar now = Calendar.getInstance();
50
+
51
+ h = now.getInstance().get(now.HOUR_OF_DAY); //譎ゅr莉」蜈・
52
+
53
+ m = now.getInstance().get(now.MINUTE); //蛻?繧剃サ」蜈・
54
+
55
+ s= now.getInstance().get(now.SECOND); //遘偵r莉」蜈・
56
+
57
+ mm=now.getInstance().get(now.MINUTE); //時間表示用
58
+
59
+ ```
60
+
61
+ 各時間を取得するのにその都度`getInstance()`は不要だと思います。実行する度、違う時刻を返しますので。
62
+
63
+ `get(int)`も、フィールド値はstaticフィールドなので、`get(Calendar.HOUR_OF_DAY)`などが正しい書き方。
64
+
65
+ `MINUTE`フィールドを2回取ってるのも謎ですし。