検索

ホームページ  >  に質問  >  本文

android - Fragment的Context问题

mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

在Fragment 下 LineraLayoutManger第一个参数是context 但是可以使用getActivity()
它返回的是FragmentActivity 为什么啊

getActivity();
getContext();
getView().getContext();
getActivity().getApplicationContext();

这四者 有什么区别啊 新手 不太懂

怪我咯怪我咯2772日前599

全員に返信(1)返信します

  • 黄舟

    黄舟2017-04-17 17:42:42

    要約すると、
    getActivity(): Activity を返します。
    getContext(): Context を返します。
    は、ほとんどの場合、どちらでもありません。新しいバージョンのサポート ライブラリ パッケージでは、フラグメントがアクティビティ

    によって保持されていない場合に違いがあります。

    パラメータがコンテキストであるにもかかわらず getActivity() を使用できるのはなぜですか?
    Activity は間接的に Context を継承するため (ソース コードを自分で確認できます)、Context は Activity ではありません
    参考: getContext() と getActivity() の違いは何ですか?

    View.getContext(): 現在実行中のビュー (通常は現在アクティブ化されているアクティビティ) のコンテキストを返します。
    Activity.getApplicationContext(): 使用する必要がある場合、アプリケーション全体のコンテキストを返します。参考: getContext()、getApplicationContext()、getBaseContext() と「this」
    の違い

    つまり、Google と要約が得意でなければなりません。 。 。

    返事
    0
  • キャンセル返事