我正在用Realm製作我學校的建築物和教室的數據庫。但是, 'for循環' 中的try-catch不起作用:for循環在android try-catch塊中不起作用
public void startCheckRealm() {
// Writing DataBase with Realm
try {
Log.d("Realm", "Init");
InitializeAPI.init_BuildingRoom(getActivity().getApplicationContext());
Log.d("Realm", "Complete");
} catch(Exception e) {
e.printStackTrace();
}
// Trying to check the Database whether it is right or wrong
try {
Log.d("Realm Test", "2nd Try Catch");
Realm.init(getActivity().getApplicationContext());
Realm realm = Realm.getDefaultInstance();
RealmResults<BuildingList> buildingLists = realm.where(BuildingList.class).findAllSorted("buildingCode");
int totalNumber = 0;
for(int i = 0; i < buildingLists.size(); i++) {
Log.d("For", "index = " + i);
RealmResults<RoomList> rooms = buildingLists.get(i).getRoomList().sort("roomCode");
String BuildingName = buildingLists.get(i).getBuildingName();
String BuildingCode = buildingLists.get(i).getBuildingCode();
for(int idx = 0; idx < rooms.size(); idx++) {
totalNumber++;
String RoomCode = rooms.get(idx).getRoomCode();
String RoomName = rooms.get(idx).getRoomName();
Log.d("Realm Test", "Number :: " + String.valueOf(totalNumber) + " BuildingCode :: " + BuildingCode + "\t\t BuildingName :: " + BuildingName + "\t\t RoomCode :: " + RoomCode + "\t\t RoomName :: " + RoomName);
}
}
Log.d("Realm Test", "2nd Try Catch Complete + " + String.valueOf(totalNumber));
} catch(RealmException e) {
e.printStackTrace();
}
}
在第一個的try-catch的方法,它使得數據庫,是完全沒有異常。我很好奇這個數據庫是對還是錯。
因此,在第二次try-catch中,我試圖用查詢來檢查領域文件。
問題是「for-loop」在第二次嘗試中不起作用。下面的代碼片段是我的logcat。
D/Realm: Init
I/System.out: bdList getLength :: 52
I/System.out: roomList getLength :: 2376
D/Realm: Complete
D/Realm Test: 2nd Try Catch
D/Realm Test: 2nd Try Catch Complete + 0
我想檢查我的日誌數據的境界,但是,不工作,你可以看到。
如果沒有問題,logcat會顯示大量建築物和房間列表,並以「D/Realm Test:2nd Try Catch Complete + 2376」結尾。
你能解釋一下它不起作用的原因嗎?即使沒有例外,我也不明白爲什麼它不起作用的原因。
buildingLists值是空的? – Jerry06
您的查詢很可能是錯誤的,並且返回零記錄。我完全不熟悉Realm,但是你可以手動調查數據庫以查看記錄是否真的存在? –
@ Jerry06也許沒有。 InitializeAPI.init_BuildingRoom(getActivity()getApplicationContext());在第一次嘗試抓住方法使52 buildingLists。您可以在logcat中看到buildingList的長度。 – TyeolRik