마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

DB에서 내용 읽어오기 관련입니다

0 추천

웹 페이지 방문기록을 만들고 있는데요

DB에는 방문한 날짜와, 방문한 Url이 들어갑니다

그리고 페이지 방문기록 액티비티에는 DB에 저장한 값들을 확장 리스트뷰로 읽어오려 하는데요.

 for(int i=0; i<c.getCount();i++){
	    	
	    	 if(today == c.getString(0)){
	    		 if(c.getString(1) !="null")
		    		 mTodayListContent.add(c.getString(1));
		    	 c.moveToNext();
		     }else if(yesterday == c.getString(0)){
		    	 if(c.getString(1) !="null")
		    		 mYesterListContent.add(c.getString(1));
		    	 c.moveToNext();
		     }else{
		    	 if(c.getString(1) !="null")
		    		 mLastListContent.add(c.getString(1));
		    	 c.moveToNext();
		     }

 

위와 같이 짰습니다. today는 calendar를 이용하여 오늘 날짜를 받아오고 yesterday는 오늘날짜에 하루 빼서 저장해 놓았습니다.

cursor 객체인 c 에는 Date와 URL 필드 두가지를 선택하여 읽어들였는데요. 문제는 url 필드 값에 null 이라고 찍힌 값들도 존재하길래 내용이 null이면 리스트뷰에 추가하지 않기 위해 각각의 if, else문 안에 또 if 문을 넣었습니다.

또한 if, else문은 날짜를 비교하여 오늘, 어제, 지난7일 이렇게 3가지로 분류하여 리스트를 추가 하기위해 조건을 걸어 놓았습니다. 

그런데 저렇게 구현하면 자꾸만 지난7일 리스트에만 내용이 추가됩니다.

로그를 찍어서 today와 getString(0)도 비교해보고 getString(1)도 찍어보았는데요

둘 다 날짜도 정상적으로 나오고 url도 저장된 값 그대로 잘 읽어 오는데 왜 오늘, 어제, 지난7일 분류가 안될까요?

그리고 왜 null도 계속 찍히는 걸까요?ㅠㅠ 도와주세요

뮤뮤 (770 포인트) 님이 2014년 5월 28일 질문

1개의 답변

+1 추천
!= "null"이 아니라 != null로 해보심이... 지금 질문자께서 한 방식은 객체 자체를 비교 해버리는 방법이에요..만약 문자열을 비교할려는 목적이라면 .equals를 하셔야 됩니다..그리고 먼저 null검사를 하고 그다음 today든 뭐든 equals를 이용해서 string 검사를 해야 할 듯합니다. 이미 null이 아니라는 가정하에 string 비교를 하는 거라..
YeonMin (17,860 포인트) 님이 2014년 5월 28일 답변
아하!!! 해결됬습니다!!! 무작정 == 부터 사용하고 봤네요ㅎㅠㅎ 감사합니다!!!
...