isChecked() returns true 虽然没有检查开关
isChecked() returns true though the switch is not checked
我使用开关来设置通知。如果选中开关,我想保存通知,即通知已打开。
但如果我打开开关并再次关闭开关并保存事件。然后通知也被设置。
正如我在 if(isChecked() == true)
上调试的那样,如果我打开和关闭开关一次,它 returns 为真。如果我不改变开关的状态,它 returns false.
怎么了?
notify.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
linearSelectTime.setEnabled(true);
linearSelectTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AlertDialog.Builder builder = new AlertDialog.Builder(AddEventActivity.this);
int selected = 0;
builder.setSingleChoiceItems(R.array.time_array, selected,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
String[] time = getBaseContext().getResources().getStringArray(R.array.time_array);
notifyTime.setText(time[item]);
notificationTime = time[item];
dialog.dismiss();
}
});
builder.show();
}
});
} else {
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
intent = new Intent(getApplicationContext(), NotificationReceiver.class);
pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), RQS_1, intent, 0);
alarmManager.cancel(pendingIntent);
notificationTime = "";
notifyText.setVisibility(View.INVISIBLE);
linearSelectTime.setEnabled(false);
}
}
});
保存时:
if (notify.isChecked()) {
setNotificationTime(c);
}
这是怎么回事?
OnCheckedChangeListener 大部分时间无法正常工作。首先在您的复选框上设置 OnClickListener 并在该方法中使用 isChecked 来获取您的复选框的值,如下所示
checkBox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (checkBox.isChecked())
{
}else {
}
}
});
我使用开关来设置通知。如果选中开关,我想保存通知,即通知已打开。
但如果我打开开关并再次关闭开关并保存事件。然后通知也被设置。
正如我在 if(isChecked() == true)
上调试的那样,如果我打开和关闭开关一次,它 returns 为真。如果我不改变开关的状态,它 returns false.
怎么了?
notify.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
linearSelectTime.setEnabled(true);
linearSelectTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AlertDialog.Builder builder = new AlertDialog.Builder(AddEventActivity.this);
int selected = 0;
builder.setSingleChoiceItems(R.array.time_array, selected,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
String[] time = getBaseContext().getResources().getStringArray(R.array.time_array);
notifyTime.setText(time[item]);
notificationTime = time[item];
dialog.dismiss();
}
});
builder.show();
}
});
} else {
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
intent = new Intent(getApplicationContext(), NotificationReceiver.class);
pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), RQS_1, intent, 0);
alarmManager.cancel(pendingIntent);
notificationTime = "";
notifyText.setVisibility(View.INVISIBLE);
linearSelectTime.setEnabled(false);
}
}
});
保存时:
if (notify.isChecked()) {
setNotificationTime(c);
}
这是怎么回事?
OnCheckedChangeListener 大部分时间无法正常工作。首先在您的复选框上设置 OnClickListener 并在该方法中使用 isChecked 来获取您的复选框的值,如下所示
checkBox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (checkBox.isChecked())
{
}else {
}
}
});