androidで通知を設定したときの音

サービスを開始するときには通知を設定しないといけない。でも通知を設定すると通知音が鳴ってしまう。これをなんとかしたいんだけど、通知を長く押して通知をサイレントにする方法しか見つからない。プログラム側で無音にする方法がないものか。

Activity遷移でSpinnerのDefaultSelectionに苦しんだ話

アプリの起動時にはSpinnerの最初の項目をEditTextに表示したい。

別のActivityを起動して新たに項目を選択した場合は新しい項目をEditTextに表示したい。

でも元のActivityに制御が戻ったときにSpinnerのEditTextやらSpinnerの初期化をやってしまうと、結局Activtyで選択した項目がロストしてしまう。

とりあえずSpinnerのDefaultSelectionの問題はカウンタを使って回避した。リスナーを登録する前にカウンタをゼロクリアすることで対応。コードはこんな感じ。

    int chkSpinnerMusic = 0;
    private AdapterView.OnItemSelectedListener onMusicItemSelected = new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent,
                                   View view, int position, long id) {
            if( chkSpinnerMusic++ <= 0 ) {
                Log.d(DTAG, "onMusicItemSelected Skip 1st default selection.");
                return;
            }

新しいActivityでの選択が無効になってしまう問題については、OnActivityResultでセットして、OnResumeでフラグをリセットして、フラグが立っている処理を迂回、という感じで対応。

Theme色の変更

res/values/colors.xmlでデフォルトのテーマカラーを変更する。

<color name=”colorPrimary”>#A9A9B1</color>
<color name=”colorPrimaryDark”>#3D3F3F</color>
<color name=”colorAccent”>#97F106</color>

AndroidStudioでカラーエディタを呼び出して変更できる。