OnPreferenceChangeListener.onPreferenceChange

Androidプログラミングにおいて、設定画面を作成する方法の一つとしてPreferenceActivityを使う方法がある。
その中で、設定が変わったことを検知するにはOnPreferenceChangeListener.onPreferenceChangeメソッドを定義する。


CheckBoxPreference checkPref = (CheckBoxPreference)
findPreference(getString(R.string.property_enable));
checkPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference p, Object newValue) {
enabled = (Boolean) newValue;
return true;
}
});

onPreferenceChangeの第一引数”Preference p”には変更前のPreferenceが格納されており、このメソッドを”true”で抜けた時に第二引数”Object newValue”で書き換えられる。”false”で抜けた時は、値は変更されない

タッチパネル操作方法の名前

“タップ”, “フリック”など、タッチパネル操作のための用語について、仕様を書くのに必要なのでまとめてみた。

タッチ
タッチパネルに触れる操作
タップ
タッチパネルを指で軽く叩く操作 (=PCのクリック)
ダブルタップ
タッチパネルを2回叩く操作 (=PCのダブルクリック)
ドラッグ
タッチパネルを押したまま指をずらす操作 (=PCのドラッグ)
フリック
タッチパネルを指で軽くはらう操作
ピンチ
2本指でのつまむ操作の総称
ピンチアウト/ピンチオープン
タッチパネルを2本指で押したまま、その間を広げて拡大する時の操作
ピンチイン/ピンチクローズ
タッチパネルを2本指で押したまま、その間を縮めて縮小する時の操作
スワイプ
タッチパネルに触れた状態で指を滑らせる操作
タッチアンドホールド/ロングタップ/長押し
タッチパネルを押したままにする操作

調べていくと、よくフリックとスワイプの違いが話題になっているけれど、スワイプはむしろドラッグと同じ類の操作に感じられる。自分なりに解釈したそれぞれの違い:
-フリック
すばやく指を動かす操作
-スワイプ
(フリックと比較して)ゆっくり指を滑らせる操作
-ドラッグ
タッチパネルの操作自体はスワイプと同じ。アイコン等をドラッグ&ドロップ(掴んで放す)操作の場合はこちらの方を使用する感じ

マナーモード設定を行う

Androidにおいて、マナーモード設定を行うにはAudioManager.setRingerMode()を使用する。

setRingerModeの引数として、AudioManager.RINGER_MODE_NORMAL、
AudioManager.RINGER_MODE_SILENT、AudioManager.RINGER_MODE_VIBRATEを指定で
きる

引数の意味:

RINGER_MODE_NORMAL – 着信音、バイブレーションを有効にする。
(音量0にセットしてある場合、着信音は鳴らない。バイブレーションが無効に設定
されている場合は無効)

RINGER_MODE_SILENT – 着信音、バイブレーションを無効にする。

RINGER_MODE_VIBRATE – 着信音を無効にし、バイブレーションを有効にする。
(着信の際、常にバイブレーションが起こるが、通知の際にバイブレーションが起
こるかどうかは設定次第)

ただし、上記設定は着信音の話なので、音楽再生時などの音量は変わらない。
アラームも鳴る。

AudioManagerのインスタンスを取得するには
Context.getSystemService(Context.AUDIO_SERVICE)を使用する。