我正在创建一个Android Studios任务列表应用程序。由于某种原因,即使表达式为假,也会调用IF语句,从而在运行时产生错误。下面提供了代码:
if (taskArray5.get(0).equals( "Goal Time Not Specified") ) {
Log.d("hello", taskArray5.get(0).getClass().toString());
Log.d("hello", taskArray5.get(0));
String[] localTimeList = localTime.split(":");
String previouslySetTime = taskArray5.get(0).substring(0, taskArray5.get(0).length() - 5);
String[] previouslySetTimeList = previouslySetTime.split(":");
Integer localTimeHours = Integer.parseInt(localTimeList[0]);
Integer localTimeMinutes = Integer.parseInt(localTimeList[1]);
Integer localTimeSeconds = Integer.parseInt(localTimeList[2]);
char AMORPM = taskArray5.get(0).charAt(taskArray5.get(0).length() - 4);
Integer previouslySetTimeHours;
if (AMORPM == 'A') {
previouslySetTimeHours = Integer.parseInt(previouslySetTimeList[0]);
} else {
previouslySetTimeHours = Integer.parseInt(previouslySetTimeList[0]) + 12;
}
我使用Log.d确认taskArray5.get(0)是具有特定值“未指定目标时间”的字符串。另外,使用equals()函数也不能解决问题。我究竟做错了什么?任何帮助表示赞赏。
答案 0 :(得分:2)
在这种情况下要做的事情:
使用断点,有时仅记录日志是不够的,您可能会遗漏某些东西,即,当您认为它被调用或可能被多次调用时,就不会调用它
您写道: taskArray.get(0)是具有特定值“未指定目标时间”的字符串,但是您在代码中使用了taskArray5。另外,如果它具有条件所必需的特定值,则输入该值不正常吗?