У меня есть фрагмент (F1) с публичным методом, как это
public void asd() {
if (getActivity() == null) {
Log.d("yes","it is null");
}
}
и да, когда я это называю (из Activity), это ноль ...
FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction();
F1 f1 = new F1();
transaction1.replace(R.id.upperPart, f1);
transaction1.commit();
f1.asd();
Это должно быть что-то, что я делаю очень неправильно, но я не знаю, что это такое
Куда относится второй фрагмент кода? Для oncreate () - метод действия? А вы уже вызывали setContentView ()?
—
Францискус Карсунке
R.id.upperPar - это элемент макета, поэтому он должен быть заменен фрагментом, но это не моя проблема. Я не понимаю, почему я получаю значение NULL, когда я вызываю getActivity () в пользовательских методах фрагментов, скажем, в методе onActivityCreated getActivity - это фактическая активность, а не NULL
—
Lukap
проблема не в макетах, приложение работает хорошо, но почему я получаю нулевое значение для getActivity?, между прочим, все элементы, включая фрагмент, отображаются так, как будто это не должно
—
возникать
Вы должны вызвать этот метод: f1.asd (); в методе onActivityCreated, который должен быть переопределен в вашем классе фрагмента.
—
Намрата Багервал
getActivity()
. Кроме того, как ты делаешь этот фрагмент? У вас есть это в вашем layout.xml?