Ответ 1
Вы можете использовать контекст, используя
getActivity().getApplicationContext();
Я сохранил некоторые данные в глобальном классе. Используя контекст приложения в одном действии. Позже я должен получить эти значения в Fragment. Я сделал что-то подобное для хранения в Global Class.
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" во всех ваших фрагментарных функциях/методах.
Удачи.
Когда во Фрагменте вы всегда можете переопределить
void onAttach (Context context) {
this.context = context;
}
Этот метод всегда вызывается для фрагмента поддержки - android.support.v4.app.Fragment
, и вы можете быть уверены, что будет установлен правильный контекст активности.
Добавьте это в onCreate
// Getting application context
Context context = getActivity();
В библиотеке поддержки 27.1.0 и более поздних версиях Google ввел новые методы requireContext()
и requireActivity()
.
Например: ContextCompat.getColor(requireContext(), R.color.soft_gray)
Больше информации здесь