1

受信者を有効または無効にするチェックボックスを設定アクティビティに追加したいと思います。これは、バックグラウンドで実行され、起動が完了したときに実行されるサービス用であり、1)設定がtrueであるか、2)Wi-Fiが有効になっているかの2つに依存します。

したがって、このように機能します。

  1. ユーザーが電話をオンにする
  2. 起動が完了し、受信機が有効になっているかどうかを確認します(checkboxpreferenceで設定)
    • チェックボックス設定がtrueの場合-wifiを探します
    • Wi-Fiがtrueの場合-レシーバーを登録します

また、wifiまたはcheckboxpreferenceが「false」になった場合は、受信者の登録を解除する必要があります。

4

2 に答える 2

0

ティムの答えは正しいですが、よく説明されていません。OnSharedPreferenceChangeListenerクラスにを実装する必要があります。

class Prefs extends PreferenceActivity implements OnSharedPreferenceChangeListener {

そうすることで、「強制的に」実装することになりますpublic void onSharedPreferenceChanged()。ここで、ユーザーが行った変更に対応できます。

public void onSharedPreferenceChanged( SharedPreferences pref, String key) {

    if ( key == "receiversToggle" ){

        if ( pref.getBoolean( "receiversToggle", false ) ) enableReceivers();
        else disableReceivers();
    }
}

これらのメソッドを設定したら、TimがonCreate()メソッドで説明したようにリスナーを登録できます。

getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
于 2011-03-06T04:27:36.703 に答える
0

数日前に同じ質問があり、if ステートメントで CheckBoxPreference を使用することになりました。

私はこのコードでそれをしました:

prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);

次に、CheckBoxPreference を使用する必要があるときは、次のようにしました。

if(prefs.getBoolean("degrees", true)) {

} else {

}
于 2011-03-05T23:42:08.897 に答える