안드로이드 개발 질문/답변
(글 수 45,052)
찾아본결과 string array에서 선언하셔셔 하라고하신분이계시던데
..그건 전혀이해개가가질않고 참조할만한 소스도없어서 어떻게 적용시켜야할지모르겠더군요 ㅠ
그래서 getIdentifier라는걸 이용해서
if(v.getId() == findViewById(getResources().getIdentifier( "getsubject_" + (i+1) , "id", "Soket.test")))
이런식으로 설정해보려고했습니다만..
v.getId() 이거하고 뒤에문장하고 타입이맞질않아서 적용을 시킬수가없더군요.
노가다로 스위치문에 data_1, data_2 주르륵 쓰면되긴하는데.. 혹시 더 좋은방법이있나해서
조언을 구해봅니다. 아무리생각해도 이건좀아닌것같아서요..
질문이 명확하지 않아서, 정확한 답변드리기가 애매하네요.
말씀하시는 data_1 ~10 이 어떤 변수 인가요? view widget id 변수들인가요? 일단 그렇게 생각하고 리플 달자면..
if(v.getId() == findViewById(getResources().getIdentifier( "getsubject_" + (i+1) , "id", "Soket.test"))) 이런 방식을 원하신다면
v.getId() 메서드의 경우 뷰의 int 형 아이디값을 불러오니 리턴값이 view 인 findViewbyid() 메서드와는 당연히 타입이 틀리게됩니다.
따라서 그냥 if(v == findviewbyid()) 처럼 사용하시면 됩니다.
만일 저라면 어레이에 넣고 굳이 활용하고 싶다하면
final int[] widget_ids = {R.id.data_1, R.id.data_2, ...}
이런식으로 클래스 멤버 변수로 선언해 놓고
if(v.getId() == widget_ids[i]) 와 같이 활용하지 않을까 싶네요.