활동하지 않는 장소에서 getLayoutInflater ()를 호출 the getLayoutInflater method could

무엇을 가져와야하거나 활동 이외의 장소에서 레이아웃 팽창기를 어떻게 호출 할 수 있습니까?

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();
}

getLayoutInflater활동 중에 만 전화 할 수 있는데 , 이것이 제한입니까? 사용자 정의 대화 상자를 생성하고 뷰를 부풀 리거나 서비스에서 표시되는 사용자 정의 뷰가있는 토스트 메시지를 받으려면 서비스의 컨텍스트 만 있고 활동이 없습니다. 하지만 맞춤 메시지를 표시하고 싶습니다.

액티비티 클래스에없는 코드의 장소에 팽창기가 필요합니다.

어떻게해야합니까?



답변

이 외부 활동을 사용할 수 있습니다. 필요한 것은 Context다음과 같습니다.

LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );

그런 다음 다른 위젯을 검색하려면 레이아웃을 부풀립니다.

View view = inflater.inflate( R.layout.myNewInflatedLayout, null );
Button myButton = (Button) view.findViewById( R.id.myButton );

2014 년 7 월 현재 수정

를 얻는 방법에 대한 Davide의 대답LayoutInflater 은 실제로 내 것보다 정확합니다 (아직 유효합니다).


답변

아니면 …

LayoutInflater inflater = LayoutInflater.from(context);

답변

또는

View.inflate(context, layout, parent)


답변

컨텍스트 객체를 사용하면 다음 코드에서 LayoutInflater를 얻을 수 있습니다.

LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

답변

LayoutInflater.from(context).inflate(R.layout.row_payment_gateway_item, null);

답변

LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );

대신 이것을 사용하십시오!