문자열이 json인지 여부를 확인할 수 있도록하려고합니다. 내가하는 일은 json의 값을 배열에 넣은 다음 값이 들어 있는지 확인하는 것입니다. 문제는 그것이 하나씩 점검한다는 것입니다. 이로 인해 사용자는 교대조가 작동하고 있다고 말할 수 없습니다. 그런 다음 다음 루프에서 작업 중이라고합니다.json에 문자열 값이 있는지 확인하십시오.
private void CheckIfAlreadyWorking(String result) throws JSONException {
//removed code to condense
//result is a json of the days that the user is already working
if (datematcher.find()) {
String date = datematcher.group(1); //Date of the shift the user is already working
JSONArray jsonArray = new JSONArray(result);
String[] yourshifts = new String[jsonArray.length()];
boolean end = false;
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
yourshifts[i] = obj.getString("date");
if (yourshifts[i].contains(date)) {
//Already working that day
Toast.makeText(getApplicationContext(), "Error: You are already working this day", Toast.LENGTH_SHORT).show();
} else if(end == false){
AddShift();
end = true;
}
}
}
else {
//Error
}
}
정확한 문제점을 설명 할 수 있습니까? 코드가 잘 보입니다. 여기에서 겪고있는 문제점은 무엇입니까? –
사용자가 교대조를 선택하면이 코드가 해당 교대조가 이미 해당 날짜에 작동하는지 확인하는 데 사용됩니다. 그러나 배열을 통해 한 번에 하나의 항목 만 검사합니다. 따라서 날짜가 첫 번째가 아닌 경우 해당 날짜가 작동하지 않는다고 표시되어 AddShift();를 호출합니다. 사실 그들은 이미 그 날짜에 일하고 있기 때문에 AddShift(); 호출되지 않아야합니다. 배열의 바로 뒤에 있습니다. – James