Androidプログラミングの小技を3つほど
昨日は音声再生でハマってあまり進まなかったので、今日も帰宅してからプログラミングをしていました。なぜかとても調子良く進んだので、役立ったテクニックを書いておきます。
小技1
今、効果音を再生するアプリを作っているのですが、普通に音量を変更しようとすると、着信音の変更になってしまいます。本当はメディアの音量の変更がしたいのに…と思ってググったところ、Techfirmさんのブログにズバリ解決策が。
どうやら
setVolumeControlStream(AudioManager.STREAM_MUSIC);
をActivityのonCreate()メソッド内に記述するだけとのこと。早速やってみたら、できました。
こういう、ごく普通のことができるようになるってすばらしい。
小技2
またまたTechfirmさんのブログを参考に、音の再生ON/OFF等の設定画面を作成しました。PreferenceActivityを継承したActivityで簡単に実装できます。で、チェックボックスはxmlで記述・配置すると、デフォルトではチェックOFF(false)なのですが、
android:defaultValue="true"
と追記すると、デフォルトでチェックON(true)になりました。
小技3
小技2の設定用Activityの画面ですが、元のメインActivityに戻る時は端末のBackキーを押します。でもそれだけじゃ明らかに不親切。元の画面へ戻りたい時、一瞬悩んでしまう可能性があります。
そこで、日本アンドロイドの会のMLの過去ログを参考にして、以下のように解決しました。
まず、PreferenceActivityのレイアウトファイルであるpreference.xmlのPreferenceCategoryタグ内の最下に
<Preference
android:key="back_key"
android:title="@string/setting_back">
</Preference>
と追加記述。これで設定行の最下に「戻る」行が作成できます。
一方Activityのコードには以下を追記して、追加した「戻る」行が押下された時の処理を記述します。
//onCreate()内から呼び出すメソッド
private void setBackLine(){
Preference prefBack = findPreference("back_key");
prefBack.setOnPreferenceClickListener(new PreferenceClickListener());
}
//リスナー
private class PreferenceClickListener implementsOnPreferenceClickListener {
public boolean onPreferenceClick(Preference preference) {
finish();
return true;
}
}
これでキーだけでなく、「戻る」をタッチして元の画面に戻すことができます。キーだけよりもずっと親切だと思います。
※コードが左揃えになってしまい、読みにくくてすいません。
※上記XMLの記述ですが、タグと認識されてしまい、変なタグが入ったりリンクになっちゃったりしましたので、一部全角で記述しています。「:」「<」など。
※xmlとかコードの揃えとかをそのまま載せたい時はどうするのかな?調べてみるか。