1. ホーム
  2. android

[解決済み】アクティビティにない場所でのgetLayoutInflater()の呼び出し

2022-02-21 19:21:51

質問

アクティビティ以外の場所で、レイアウトインフレータを呼び出すには、何をインポートする必要があるのですか?

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月時点のEDIT

ダビデの 回答 を取得する方法について LayoutInflater の方が、実は私のものより正しいのです(それでも有効なのですが)。