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

안드로이드 service 관련 질문입니다! [closed]

0 추천

안녕하세요! 매일같이 질문을 하게 되네요ㅠㅠ

언제쯤 질문없이 만들수 있을런지

 

오늘은 service로 최상위 액티비티에 있는 버튼이나 textView의

id 값을 가져오는 방법에 대한 질문입니다..

 

v = li.inflate(R.layout.min_otp, null);

otp_max = (Button) v.findViewById(R.id.otp_max);
otp_exit = (Button) v.findViewById(R.id.otp_exit);
otp_copy = (Button) v.findViewById(R.id.otp_copy);

요런식으로 하면 가져올수 있다고하는데..

전혀 받아오질못하구요..

v = li.inflate(R.layout.min_otp, (ViewGroup)findViewById(R.id.lo_min));

이것역시 findViewById에서 cannot resolve method 에러가 나옵니다..

서비스에서 inflate한 레이아웃 id 값을 어떻게하면 받아올수있을까요??

질문을 종료한 이유: 해결했습니다!
개발왕이되고싶은 (1,110 포인트) 님이 2017년 6월 29일 질문
개발왕이되고싶은님이 2017년 6월 30일 closed

2개의 답변

+1 추천
 
채택된 답변

제가 최상위 윈도우로 해볼꺼 다해봤는데요.. 제가 살펴보니 ...먼저 답변주신분도 맞는데 

한번 다시 살펴보는게 좋을것 같네요. 아래의 윈도우 서비스 가져오는 부분이랑 inflater하는 부분만 되어있으면

잘되는게 보통입니다.

mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
LayoutInflater inflater = LayoutInflater.from(this);
mView = inflater.inflate(R.layout.my_list, null);
mTvCount = (TextView) mView.findViewById(R.id.tv_count);
라쎄린드 (25,460 포인트) 님이 2017년 6월 29일 답변
개발왕이되고싶은님이 2017년 6월 30일 채택됨
mView랑 mTvCount는 TextView인가요?ㅠㅠ
그리고 mView에 R.layout. 여기는 뭐가 들어간건가요..
mTvCount에 R.id.여기도..ㅠㅠ
해결했습니다! 감사합니다!
채택을 해주시죠!! ^^ ㅋ
채택하는방법좀 알려주세요!!!
+1 추천
최상위 액티비티는 다른 앱인가요? 자기 앱내의 액티비티인가요?

자기 앱내의 액티비티라면, 베이스 액티비티만들어 모든 액티비티가 상속하게 만들어 이용하는게 가장 빨라 보이네요.

다른 앱의 액티비티라면, 쉽지 않아 보이네요.

그리고 이런 기능이 왜 필요한지는 비밀인가요? 다른 쉬운 방법이 있을 수도 있으므로, 아이디어를 공유하는 편이 훨씬 빠르게 답을 찾을 겁니다.

Idea worth to spread
Will Kim (43,170 포인트) 님이 2017년 6월 29일 답변
아래 이전 질문이 있었군요.. 방금 읽어 보았습니다.
3년전에 만들어 보긴 했는데, 지금 해보려면 시간이 걸리니, 아래 답변을 참고하세요.

https://stackoverflow.com/questions/19539887/possible-to-inflate-an-xml-layout-in-a-service-android
감사합니다!
최상위 액티비티는 현재 앱에서 서비스를 구동하여 실행되는 화면입니다!
이런기능이 필요한 이유는 제가 만들어보고싶은 어플이
현재 넥슨사의 U+OTP와 같이 창이 커졌다 작아졌다하면서
otp값은 계속 전달되는 어플을 구현해 보고 싶어서 입니다!
다른방법이 존재 할까요!?
이 방법으로 똑같이 구현했지만 안되더라구요..ㅠㅠ
...