2011-09-21 4 views
0

나는 이것에 약간 미치게됩니다. 내 응용 프로그램에서 버스 정류장을 나타내는 문자열을 가져온 다음 일치하는 알고리즘을 사용하여 일정을 표시합니다. 이 창을 대화 상자 대신 활동으로 만들어야하고 의도를 사용하고 있습니다. (내에서 onCreate에서) 문자열을 검색 할Android 인 텐트 문제 : 왜이 ​​두 변수가 동일하지 않습니까?

    Intent intent = new Intent(context, StopDialogActivity.class); 
       intent.putExtra("stop name", stopName); 
       context.startActivity(intent); 

과를 heres 내 코드 : Heres는 내 코드는 의도를 보낼 제대로

Bundle extras = getIntent().getExtras(); 
departureStopName=extras.getString("stop name"); 

문자열 표시를하지만, 테스트 문자열과 동일한 밤은 내가 같은 멈추다. 의도가 올바른 정수를 보냅니다. 처리 문자열에 어떤 오류가 있습니까?

+2

평등을 어떻게 테스트합니까? 'testName == stopName'이 아닌'testName.equals (stopName)'을 사용하여 문자열을 비교할 때주의하십시오. 또한 이와 같은 물건을 인 텐트에 배치 할 때'static final String'을 키로 사용하는 것이 일반적입니다. 따라서 양쪽 끝에 오류가 적습니다. –

+0

사실로보고 함 – jfisk

+0

그렇다면 문제가 해결 되었습니까? 그렇다면 답변을 게시 할 수 있습니다. –

답변

1

문자열을 비교할 때 testName == stopName이 아닌 testName.equals (stopName)을 사용해야합니다.

.equals()을 사용하면 내용을 비교하는 String 클래스에서 equals 메서드를 사용합니다. ==을 사용하면 String 객체 자체를 비교합니다. 문자열 객체 자체는 메모리에있는 동일한 객체 여야 true로 평가됩니다.

+0

왜 OP는에 대한 의견에 정확하게 언급 된 답변 downvote 것입니다. 내가 추가 한 이유는 그가 대답으로 추가하면 그가 올바른 것으로 표시했기 때문입니다. 다음에 downvoting하기 전에 주석을 읽으십시오. –

0

아, 내 문제는 내가 .equals()를 사용하여 테스트를 통과하는 동안 괜찮 았는지, 내 코드가 손상된 부분에서 ==를 사용하고 있는지 확인하는 것이 었습니다.