나는 이것이 정말로 간단하다고 확신하지만 지금 당분간 어떤 일이 일어나고 있는지를 알 수 없다.예상보다 적은 값을 가진 배열을 만드는 루프
// Access the shared preferences to see if the user has saved any alarms yet
SharedPreferences sharedPreferences = context.getSharedPreferences("AppData", Context.MODE_PRIVATE);
String alarmsstring = sharedPreferences.getString("AlarmsStringSP", "None");
// Split the the main alarm string into array of strings values for alarm objects
List<String> alarmObjectsArray = Arrays.asList(alarmsstring.split("\\s*;\\s*"));
내가 사용하여 해당 목록의 크기를 확인 :
내가 공유 환경에서 얻을 목록을
System.out.println("Testing"+ alarmObjectsArray.size());
내가 얻을 :
I/System.out: Testing3
어느 나는 거기까지 아주 좋아 보이기를 기대한다.
그런 다음 새 배열 목록을 만들고 이전 목록의 각 요소를 새 것으로 변환하여 개체로 변환합니다. 이처럼
:
// Iterate through the alarm objects, and place each item into the alarms array
for (int i = 0; i < alarmObjectsArray.size()-1; i++){
// For each of the alarm objects split them into their induvidual items so they can be
// converted back to the correct type.
List<String> alarmItems = Arrays.asList(alarmObjectsArray.get(i).split("\\s*,\\s*"));
Alarm alarm = new Alarm(Integer.parseInt(alarmItems.get(0)),Integer.parseInt(alarmItems.get(1)),
Boolean.parseBoolean(alarmItems.get(2)), Boolean.parseBoolean(alarmItems.get(3)),
Boolean.parseBoolean(alarmItems.get(4)),Boolean.parseBoolean(alarmItems.get(5)),
Boolean.parseBoolean(alarmItems.get(6)), Boolean.parseBoolean(alarmItems.get(7)),
Boolean.parseBoolean(alarmItems.get(8)));
alarms.add(alarm);
}
가 for 루프에서 올 때 유일한 것은이 내가 함께 새로운 배열의 크기를 확인 :
System.out.println("Testing"+ alarms.size());
내가 얻을 :
I/System.out: Testing2
배열에서 배열로 옮겨 졌을 때 어떻게 든 사라졌습니다. for 루프에 많은 텍스트가 있음을 알고 있지만 하나가 적은 이유는 알 수 없습니다.
아마도 alarmObjectsArray.size() - 1 때문에? – Blackbelt
'(int i = 0; i
Eran
'alarmObjectsArray.size() - 1' 이유는 무엇입니까? – PriyankaChauhan