web-dev-qa-db-ja.com

コンテキストを指定してレイアウトインフレータを取得する方法は?

ListAdapterのカスタム実装を書いています。

そのコンストラクターでは、コンテキスト、リソースID(つまり、レイアウトファイルを表すR.id.xxx)、およびリストとマップ(これらにはデータが含まれています)を使用します。

今、問題は、個別のレイアウトXMLファイルにあるViewオブジェクトを取得するためにLayoutInflaterが必要になることです。

コンテキストのみを指定してLayoutInflaterを取得するにはどうすればよいですか?

さて、これが可能だと思う理由は、これがArrayAdapterのコンストラクターに渡されているもの(コンテキスト、リソース、textViewResourceId、データ配列)に非常に似ているためであり、ArrayAdapterもコンテキストのみが指定されたLayoutInflater。

しかし、どのようにそれを行うことができますか?

215
Edwin Lee

staticLayoutInflaterクラスの_from()メソッド を使用できます。

 LayoutInflater li = LayoutInflater.from(context);
498
Dave Webb

このコードを使用してLayoutInflaterを取得することもできます。

LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)
52
NguyenDat