Я получаю ошибку Non-static method 'getSupportFragmentManager()' cannot be referenced from static context
для следующего кода:
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentActivity;
.
.
.
public class MedicalInformationFragment extends Fragment implements FragmentNameProvider, ConfirmDialogFragment.ConfirmDialogListener{
.
.
.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "Entered: onCreate");
first = true;
if(getArguments() != null) {
petId = getArguments().getInt(PET_ID_KEY);
Log.d(TAG, "Pet ID is: " + petId);
sMedicalInformationViewModel = ViewModelProviders.of(this).get(MedicalInformationViewModel.class);
FragmentManager fm = FragmentActivity.getSupportFragmentManager();
if(fm != null) {
thisFragment = fm.findFragmentById(R.id.fragment_container);
Log.d(TAG, "thisFragment is: " + thisFragment);
}else{
Log.d(TAG, "Error: fm == null");
}
}else{
Log.d(TAG, "Error: getArguments() == null");
}
}
.
.
.
}
Однако ключевое слово 'stati c' никогда и нигде в классе не используется.
I Я использую API для использования getSupportFragmentManager () . Я использовал getFragmentManager , но мне сказали, что android.app.Fragment
был deprecated in API level 28.and to use the Support Library Fragment for consistent behavior across all devices and access to Lifecycle
, но я обнаружил, что это package is part of the Android support library which is no longer maintained. The support library has been superseded by AndroidX which is part of Jetpack
.
Итак, вот я, следуя указаниям директивы Android API и получение ошибки, которую я не понимаю. Что может вызвать эту ошибку, если ключевое слово 'stati c' не используется?