web-dev-qa-db-ja.com

Androidのフラグメントでアプリケーションコンテキストを取得しますか?

One ActivityのApplication Contextを使用して、グローバルクラスにいくつかのデータを保存しました。後で、A Fragmentでこれらの値を取得する必要があります。グローバルクラスに格納するために、このようなことをしました。

AndroidGlobalClass  AGC = ((AndroidGlobalClass) getApplicationContext());
AGC.setUser_access("XYZ");
AGC.setFirst_name("ABC");

そしてマニフェストで私がやった:

<application
    Android:name=".AndroidGlobalClass"
    Android:theme="@style/AppTheme" >
    <activity
       Android:name="abc.SignInActivity"
       Android:label="@string/app_name" >
       <intent-filter>
          <action Android:name="Android.intent.action.MAIN" />
          <category Android:name="Android.intent.category.LAUNCHER" />
       </intent-filter>
    </activity>
</application>

これを使用してアプリケーションコンテキストを取得しようとすると...コンテキストが取得されません...

AndroidGlobalClass  AGC = ((AndroidGlobalClass) getApplicationContext());

これは私のフラグメントアクティビティです

public class Fragment_NewsFeed extends Fragment {
    public Fragment_NewsFeed() {
    }

    RestImplimentationMethods RIM;
    AndroidGlobalClass AGC;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_newsfeed, container, false);
        return rootView;
    }
}
44
NRahman

getActivity().getApplicationContext();を使用してコンテキストを取得できます

151
SalGad

つかいます

getActivity()。getApplicationContext()

任意のフラグメントのコンテキストを取得する

14
Aakash Goyal

getActivity();を使用してみてください。これで問題が解決します。

3
Ashwin S Ashok

グローバル変数を定義できます:

private Context globalContext = null;

そしてonCreateメソッドで、それを初期化します:

globalContext = this.getActivity();

それにより、すべてのフラグメント関数/メソッドで「globalContext」変数を使用できます。

幸運を。

3
Nabz

サポートライブラリ27.1.0以降では、Googleは新しいメソッドrequireContext()およびrequireActivity()メソッドを導入しました。

例:ContextCompat.getColor(requireContext(), R.color.soft_gray)

詳細 こちら

0
Jithin Jude