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;
}
}
getActivity().getApplicationContext();
を使用してコンテキストを取得できます
つかいます
getActivity()。getApplicationContext()
任意のフラグメントのコンテキストを取得する
getActivity();
を使用してみてください。これで問題が解決します。
グローバル変数を定義できます:
private Context globalContext = null;
そしてonCreateメソッドで、それを初期化します:
globalContext = this.getActivity();
それにより、すべてのフラグメント関数/メソッドで「globalContext」変数を使用できます。
幸運を。
サポートライブラリ27.1.0以降では、Googleは新しいメソッドrequireContext()
およびrequireActivity()
メソッドを導入しました。
例:ContextCompat.getColor(requireContext(), R.color.soft_gray)
詳細 こちら