Q4 getFragmentManager z aktywnością - niezgodne typy
Mam prostą czynność, która działa zgodnie z oczekiwaniami.
import android.app.Activity;
import android.app.FragmentManager;
// import android.support.v4.app.FragmentManager;
import android.os.Bundle;public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// FragmentManager fm = getSupportFragmentManager();// ActionBarActivity
FragmentManager fm = getFragmentManager();// Activity
}
}
Potem go wymieniłem
import android.app.FragmentManager;
od
import android.support.v4.app.FragmentManager;
aby móc obsługiwać moje stare urządzenia .. Jednak ten zgłasza błąd:
Incompatible types. Required: android.support.v4.app.FragmentManager Found: android.app.FragmentManager
Co ja tu robię źle?
Popularnym rozwiązaniem, które znalazłem, jest użycie zamiast tego metody getSupportFragmentManager (), ale działa to tylko w przypadku ActionBarActivites [edytuj - zobacz odpowiedzi] i FragmentActivities.
nie można konwertować z android.app.FragmentManager do android.support.v4.app.FragmentManager
https://coderoad.ru/16690364/
Inne odpowiednie rozwiązanie wskazuje na użycie zamiast tego FragmentActivity, ale wydaje się, że ma te same odziedziczone problemy.
Metoda GetFragmentManager () nie została zdefiniowana dla typu MyActivity
https://coderoad.ru/10596946/
import android.support.v4.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity; public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
// FragmentManager fm = getSupportFragmentManager();// ActionBarActivity
FragmentManager fm = getFragmentManager();
}
}
Jestem prawie pewien, że rozwiązanie tego problemu będzie już dostępne na SE, ale nie jest to łatwe (dla mnie) do znalezienia. Minimalny przykład powinien pomóc innym ludziom to zrozumieć.
- Jestem całkiem nowy w Androidzie.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
4 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
W drugim przypadku musisz użyć zamiast .
Fragmenty zostały włożone do plastra miodu. Aby wspierać fragmenty poniżej plastra miodu, musisz użyć fragmentów z biblioteki wsparcia, w takim przypadku musisz rozszerzyć i użyć .
Anonimowy użytkownik
Potwierdzenie od:
Źle, to powinno działać w twoim , że FragmentActivity znajduje się w twoim pakiecie wsparcia, gdy utrzymujesz starsze urządzenie, to wszystkie importowane z , , itp. muszą mieć , aby wskazać, że używasz pakietu pomocy. bez użycia so spowoduje
Pakujesz pakiet wsparcia z nieobsługiwanym pakietem, co powoduje , jak powiedziałem powyżej.
Anonimowy użytkownik
Potwierdzenie od:
użyj poniżej, aby uzyskać aktywność, o ile jest to rodzic
lub
Anonimowy użytkownik
Potwierdzenie od:
Kotlin: