2017-07-28 5 views
0

私はそれがどのように動作するかにgetcontext()メソッドで非常に興味は、例えば、私はリサイクルビューにアンドロイドのgetContextメソッド

@Override 
public RecycleView.ViewHolder onCreateViewHolder(ViewGroup parent ,int viewtype) 
{ 
View view =LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item,parent,false);} 

を書いて、私は私のフラグメントのクラスにそれを呼び出すと、私のフラグメントクラスはmainActivityに定義された ここで私の質問は、コンテキストメソッドMainActivityを取得する方法ですか?コンテキストを理解するにはどうすればよいですか? 私はアンドロイドのスタジオにその方法を見て、私は究極の参考のためだけでなく

答えて

0

を理解していなかった:Context | Android Developers

かいつまんで、Viewクラス、したがって、すべてのそれのサブクラス(のようなViewGroupのを)、オブジェクトを返すgetContext()という定義された関数を持っています。このクラスは抽象クラスで、実装はAndroidシステムによって提供されるため、実際の機能が理解しにくいのはこのためです。テーマやリソースなど、アプリケーションの環境に関するグローバルな情報にアクセスすることができます。それはかなり魔法ですが、慎重でないと魔法の面でコストがかかることがあります。 Contextオブジェクトをリークするのは非常に簡単で、デバイス上のRAMをすばやく食べることができます。

+0

あなたの最後の文章ですごくうれしい説明がありますが、すぐにデバイスのRAMを使い果たすことができます。これは悪いですか(コンテキストを使用することを意味します)何のためにアドバイスしますか? – john12

+0

コンテキストを使用するのは良い(そして必要です)が、間違って使うのは非常に簡単です。例えば、 'Context.getApplicationContext()'を使うのは、 'getContext()'を使うよりも一般的に安全です。可能ならば、 'Context'オブジェクトを他のクラスに渡さないようにしなければ、' Context'オブジェクトをリークする簡単な方法です。詳しくはhttps://android-developers.googleblog.com/2009/01/avoiding-memory-leaks.htmlをご覧ください – privatestaticint

関連する問題