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

sqlite 데이터 중 변수와 비교 후 같으면 출력하는 코드 확인 좀 해주세요. ㅎㅎ

0 추천

sqlite 데이터 중 원하는 조건에 맞는 데이터를 출력하려고 if문 써서 동일한 데이터면

리스트뷰에 출력, 그렇지 않으면 넘어가서 리스트뷰에 나오지 않게 하려고 하는데요.

 

sqlite에서 불러오는 값과 비교하는 값 모두 같고 데이터형식도 같은데 if문에서 자꾸 다르다고 나와서

리스트뷰에 출력이 되지 않네요 ;

 

아무리 봐도 동일한 값인데 어디가 잘못됐는지 확인 부탁드려요 

 

아래는 c.getString(1) 값과 merida값을 비교하는데 모두 log.i로 뽑아보면 merida값으로 동일하고요.

데이터형식도 둘다 String에요.

LogCat을 봐도 에러는 안뜨고 if문 비교 부분이 실행이 되지 않는 것만 나오고 있어요.

 

		ArrayList<ListActivity_CustomDTO> list = new ArrayList<ListActivity_CustomDTO>();
		
		//배열 array의 행 크기만큼 반복하여 데이터 출력
		c.moveToFirst();						//MainActivity의 검색 데이터 매칭을 위해 테이블 첫 행으로 이동
		
		for(int i=0; i < array.length; i++) {
			
			Log.i("LOG TEST1", merida);
			Log.i("LOG TEST2", c.getString(1));
			
			if(c.getString(1) == merida) {
				
				list.add(new ListActivity_CustomDTO(R.drawable.canada, array[i][4], array[i][1], array[i][8], array[i][7]));
				Log.i("LOG TEST3", "what happen!");
			}
			c.moveToNext();
		}
		
		ListActivity_CustomAdapter adapter = new ListActivity_CustomAdapter(
												getApplicationContext(),
												R.layout.activity_list_row,
												list);
		
		listView.setAdapter(adapter);

 

 

아래는 로그 캡쳐한 사진입니다.

뿌요뿌요 (1,350 포인트) 님이 2015년 2월 2일 질문

1개의 답변

+1 추천
 
채택된 답변
 if(c.getString(1) == merida) {
=>
 if(merida.equla(c.getString(1))) {
이렇게 비교하셔야...
nicehee (73,100 포인트) 님이 2015년 2월 2일 답변
뿌요뿌요님이 2015년 2월 2일 채택됨
아,, 감사합니다 !! 잘 해결했어요. 반나절 고민했는데, 잘못 적고 있었군요.. 감사합니다 ! ㅎㅎ
...