ユーザー設定チェックボックスを使用して、ステータスバーに通知を表示または非表示にしようとしています。これまでのところ、私はこれを行ってきました:
MainActivity.java
@Override
public void UserPref {
String notificationTitle = "ASD";
String notificationMessage = "ASD ASD ASD";
Intent targetIntent = new Intent(this, MainActivity.class);
int requestCode = AppSingleton.NOTIFICATION_ID;
PendingIntent contentIntent = PendingIntent.getActivity(this,
requestCode, targetIntent, 0);
String statusBarTickerText = "ASD ASD ASD";
int icon = R.drawable.ic_launcher;
Notification notification = new Notification(icon, statusBarTickerText,
System.currentTimeMillis());
notification.flags = Notification.FLAG_ONGOING_EVENT
| Notification.FLAG_NO_CLEAR;
notification.setLatestEventInfo(this, notificationTitle,
notificationMessage, contentIntent);
nm.notify(AppSingleton.NOTIFICATION_ID, notification);
}
通知を常に表示できます。しかし今、ユーザーが通知を無効または有効にできるユーザー設定を追加したいと考えています。PreferenceActivity のコードは次のとおりです。
UserPreference.java
public class UserPreference extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
final CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager()
.findPreference("Checkbox");
checkboxPref
.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference,
Object newValue) {
Log.d("MyApp", "Pref " + preference.getKey() + " changed to " + newValue.toString());
return true;
}
});
}
}
CheckBox が MainActivity.java からチェックされているときに関数を呼び出すことができませんが、DDMS でブール値を出力できます。
私が間違っていることを見て修正し、この問題を克服するのを手伝ってください。