Подтвердить что ты не робот

Получить контекст приложения во фрагменте в Android?

Я сохранил некоторые данные в глобальном классе. Используя контекст приложения в одном действии. Позже я должен получить эти значения в 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;
    }
}
4b9b3361

Ответ 1

Вы можете использовать контекст, используя getActivity().getApplicationContext();

Ответ 2

Используйте

getActivity(). GetApplicationContext()

чтобы получить контекст в любом фрагменте

Ответ 3

Попробуйте использовать getActivity(); Это решит вашу проблему.

Ответ 4

вы можете определить глобальную переменную:

private Context globalContext = null;

и в методе onCreate инициализируйте его:

globalContext = this.getActivity();

И тем самым вы можете использовать переменную "globalContext" во всех ваших фрагментарных функциях/методах.

Удачи.

Ответ 5

Когда во Фрагменте вы всегда можете переопределить

void onAttach (Context context) {
  this.context = context;
}

Этот метод всегда вызывается для фрагмента поддержки - android.support.v4.app.Fragment, и вы можете быть уверены, что будет установлен правильный контекст активности.

Ответ 6

Добавьте это в onCreate

// Getting application context
        Context context = getActivity();

Ответ 7

В библиотеке поддержки 27.1.0 и более поздних версиях Google ввел новые методы requireContext() и requireActivity().

Например: ContextCompat.getColor(requireContext(), R.color.soft_gray)

Больше информации здесь