본문 바로가기

ANDROID

[안드로이드] 인텐트로부터 전달받은 String 값을 if 문으로 검출하기

랜덤 음식점 추첨 어플을 만들면서 이전 액티비티에서 선택한 버튼에 따라 인텐트에 내용을 다르게 첨부하고,


이를 다음 액티비티에서 읽는데까지는 성공했는데 이것이 어떤 버튼에서 수행된것인지에 따라 기능을 다르게 하려고


if 문을 통해 전달받은 String을 걸러내려고 하였는데


// 전달받은 인텐트는 intent.putExtra("value", "message") 로 첨부되었다.


target = intent.getStringExtra("value");


if ( inputString == target) {}



같은 일반적인 자바 if문으로 전달받은 String 값이 걸러지지가 않는 것이였다. 


처음에는 자료구조에 이상이 있을까, 코드 순서에 문제가 있던걸까, 조금의 시간이 걸렸는데


운좋게 올려본 마우스 커서에 메세지를 보니, 친절하게도 안드로이드 스튜디오에서


== 를 쓰는것 보다, equals(Object o) 를 추천한다는 식의 메세지를 띄워준 것이다.


그래서 기존의 저 위의 문장을 아래처럼 바꾸어주었다.



target = intent.getStringExtra("value");


if (inputString.equals(target)) {}



결과적으로 잘 걸러진다. 자료구조에는 이상이 없었고, 코드 순서에 이상도 없었다.


equals(Object o) 를 잘 염두해두자.. 조건문이 힘을 못쓴다 싶을땐.