티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
Call getLayoutInflater() in places not in activity
액티비티 바깥에서에서 getLayoutInflater()를 호출하기
문제 내용
What does need to be imported or how can I call the Layout inflater in places other than activity?
액티비티 바깥에서도 레이아웃 인플레이터(Layout inflater)를 사용하려면 무엇이 필요한가요?
public static void method(Context context){
//this doesn't work the getLayoutInflater method could not be found
LayoutInflater inflater = getLayoutInflater();
// this also doesn't work
LayoutInflater inflater = context.getLayoutInflater();
}
I am able to call getLayoutInflater
only in activity, is that an restriction? What if I want to create custom dialog and I want to inflate view for it, or what if I want to have Toast message with custom view that is shown from a service, I only have the context from the service I do not have any activity but I want to show custom message.
액티비티에서만 getLayoutInflater를 호출할 수 있습니다. 제한 사항인가요? 사용자 지정 대화 상자를 만들고 그에 대한 뷰를 인플레이트하려는 경우 또는 서비스에서 표시되는 사용자 지정 뷰가 포함된 토스트 메시지를 갖고 싶은 경우 서비스의 컨텍스트만 있고 액티비티가 없는 경우에는 어떻게 해야 합니까? 하지만 맞춤 메시지를 표시하고 싶습니다.
I need the inflater in places in the code that isn't in the activity class.
저는 액티비티 클래스가 아닌 코드에서 인플레이터를 필요로 합니다.
How can I do this ?
어떻게 해야 하나요?
높은 점수를 받은 Solution
You can use this outside activities - all you need is to provide a Context
:
이걸 액티비티 외부에서도 사용할 수 있습니다 - 제공하는 것은 컨텍스트(Context)입니다:
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
Then to retrieve your different widgets, you inflate a layout:
그리고 다양한 위젯을 검색하기 위해서 레이아웃을 인플레이트합니다.
View view = inflater.inflate( R.layout.myNewInflatedLayout, null );
Button myButton = (Button) view.findViewById( R.id.myButton );
EDIT as of July 2014
2014년 7월 기준 수정된 부분:
Davide's answer on how to get the LayoutInflater
is actually more correct than mine (which is still valid though).
다비드(Davide)의 답변인 LayoutInflator를 가져오는 방법은 실제로 내 것보다 더 올바릅니다(하지만 내 방법도 여전히 유효합니다).
가장 최근 달린 Solution
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
Use this instead!
대신 이것을 사용하세요!
출처 : https://stackoverflow.com/questions/7803771/call-getlayoutinflater-in-places-not-in-activity
'개발 > 안드로이드' 카테고리의 다른 글
안드로이드 갤러리에서 이미지만 선택하기 (0) | 2023.01.13 |
---|---|
Recyclerview가 onCreateViewHolder를 호출하지 않을 때 확인 해 볼것들.. (0) | 2023.01.13 |
안드로이드에서 ImageView의 배경 투명하게 설정하기 (0) | 2023.01.11 |
Android의 컨텍스트에서 활동 가져오기 (0) | 2023.01.11 |
안드로이드 웹뷰에서 위치정보 사용하기 (0) | 2023.01.10 |