问题:
我试图通过sharedpreferences来提取布尔值,但每次我尝试使用该值时,我都会收到编译器错误,指出操作符未定义为参数类型。我不确定为什么会发生这种情况 - 我相信我已经将时间布尔值转换为字符串 - 然后我应该能够将其作为一个值来乘以得到我的时间值:
来源:
String PREF = "prefs";
SharedPreferences prefs = getSharedPreferences(PREF, Context.MODE_PRIVATE);
boolean name = prefs.getBoolean("name", true);
boolean code = prefs.getBoolean("corename", true);
boolean time = prefs.getBoolean("time", true);
boolean ssid = prefs.getBoolean("restricted", true);
String killtime = String.valueOf(time);
Intent intent2 = new Intent(Rules.this, KillTimer.class);
PendingIntent pintent2 = PendingIntent.getActivity(Rules.this, 0, intent2,
0);
AlarmManager alarm2 = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
killtime * 1000, pintent2); // error is thrown here
答案 0 :(得分:2)
您试图将String
和int
相乘。这没有意义。再说一次,如果String
被强制转换为int
,那么alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
time ? 1000 : 0, pintent2);
所具有的值就没有意义 - 它可以是1或0,这可以用三元语句更清楚地说明(有趣的是)。
{{1}}