Translate

BTemplates.com

Powered by Blogger.

2017年9月15日金曜日

2017-09-14 到達点メモ


大まかにレイアウトが決まった気がする。
タイトルの上に空間を取ったほうが見やすい気がする
具体例は下の画像を参照

タイトルの上の空間無し タイトルの上に空間を入れる

次の問題は、レイアウトの統一とアプリ終了後に
停止ボタンを押すとエラーになる問題をどうするか……。

アプリ終了後に停止ボタンを押すとエラーになるのは当たり前の話ではあるのですが
とか考えていたのですが、普通にReceiver側でMainActivityが存在しない時は動作しないという風に書き換えたら普通に対処できた。

レイアウトは統一できた。
うーん。今のところ、停止ボタンをタップできるのがタイマーが終了した時のみ
なのだが、こうして作ると通常時もスタートとストップボタンが欲しくなる……。
実装は難しくはないのだが、現状は停止ボタンを押したときに
通知は消える仕様になっているし、かといって消さないと消えない通知が存在する可能性が高くなるからあまりやりたくはないのだが……。
元々はロック画面の時タイマーを止められるようにしたいというのが目的だから
一先ずはこれで良しとしよう。

コードをリファクタリングしていて気が付いたのだが
どうも、switch文の条件分岐を使いたい場合は、必ず値が固定でないとダメなようである。
具体的には以下のような書き方はfinalを使っていても許されない。
具体的には赤字のnumの部分で赤並線が引かれる。

    public void updateUI(int now_sec, int state){
        final int num = now_sec;
        switch (state){
            case num:
                break;

        }

恐らく定数は決め打ちでないとダメなようである。
具体的には final int num = 1 と書けば赤並線は出ない。
この場合はもう仕方がないので、if文を使うしかない。

参考サイト
R.id.xxx を switch 文で使うと case expressions must be constant expressions

なんかエミュレーターでテストしてたら謎のバグを発見した
タイマー一覧をクリックする→5分を選択→開始する→初期化する→タイマー一覧をクリックする→7分をクリックするを繰り返すと
偶にタイマーを選択した瞬間に0になる時がある。
実機で20回くらい試したが挙動が確認できない……。
どういうことなの…???

通知ドロワーのレイアウトを確認したかっただけなのに……。
色んな意味で頭が痛くなってきたので今日はここまで。

0 コメント:

コメントを投稿