Java getBooleanExtra不能应用于布尔变量
我试图在活动之间传递布尔值: main活动Java getBooleanExtra不能应用于布尔变量,java,android,Java,Android,我试图在活动之间传递布尔值: main活动 boolean stream = false; boolean wifi = false; public void onToggleClicked(View view) { if (((ToggleButton)view).isChecked()) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, a
boolean stream = false;
boolean wifi = false;
public void onToggleClicked(View view) {
if (((ToggleButton)view).isChecked()) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour());
calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute());
Intent myIntent = new Intent(MainActivity.this, AlarmReceiver.class);
myIntent.putExtra("snooze",false);
myIntent.putExtra("stream",stream);
myIntent.putExtra("wifi",wifi);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent, 0);
alarmManager.setExact(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent);
}
}
然后在我的广播接收器中检索它:
报警接收器
public class AlarmReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
Boolean wifi = intent.getBooleanExtra("wifi");
Boolean stream = intent.getBooleanExtra("stream");
Boolean snooze = intent.getBooleanExtra("snooze");
//.....
对于每个getBooleanExtra,我都会得到以下错误:
error: method getBooleanExtra in class Intent cannot be applied to given types;
required: String,boolean
found: boolean
reason: actual and formal argument lists differ in length
如果将Boolean更改为Boolean,则错误将更改为found:String,而不是found:Boolean
如何修复此问题?返回一个基本布尔类型,您必须给出一个默认值
Boolean stream = intent.getBooleanExtra("stream",false);
// ^^ wrapper class ^^^ default value
或者,您可以使用boolean
避免从boolean
到boolean
进行不必要的自动装箱
boolean wifi = intent.getBooleanExtra("wifi",false);
boolean stream = intent.getBooleanExtra("stream",false);
boolean snooze = intent.getBooleanExtra("snooze",false);
非常感谢,愚蠢的问题。我想我会被禁止问的again@JenniferCanas我很高兴我能帮上忙,总是检查文档以防出现此类错误,编码愉快