私はサービスを作っているので、サービスから拡張されたサービスクラスがあります。PreferenceScreen からチェックボックスを取得しており、チェックされているかどうかに基づいてアクションを実行しています。CheckBoxPreference を取得するには、getPreferenceManager() メソッドを使用します。しかし、赤い下線があります。カーソルを合わせると、このエラーが表示されますThe method getPreferenceManager() is undefined for the type BatteryService
。メインクラスで同じコードを使用すると、機能します。これが私のコードです
public int onStartCommand(Intent intent, int flags, int startId) {
initNotification();
final CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("cbAlarm");
checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference,
Object newValue) {
if (newValue.toString().equals("true")) {
Toast.makeText(getApplicationContext(), "Service Started", Toast.LENGTH_LONG).show();
registerReceiver(batteryInfoReceiver, new IntentFilter(
Intent.ACTION_BATTERY_CHANGED));
} else if (newValue.toString().equals("false")) {
stopService(new Intent(getBaseContext(),
BatteryService.class));
Toast.makeText(getApplicationContext(),
"Unchecked", Toast.LENGTH_SHORT).show();
}
return true;
}
});
return START_STICKY;
}
どうすればこの問題を解決できますか? 助けてください