Etkinlik ve Parça Etkinliği Arasındaki Fark


228

Parçalar üzerinde çalışıyordum ve iki kez karşılaştım Activityve FragmentActivitybunlar birkaç kez kullanıldı. Ben değişti çünkü bu ikisi arasında herhangi bir fark olmadığını bilmek istiyorum Activityile FragmentActivity, bu uygulama üzerinde hiçbir etkisi olmadı.

Yanıtlar:


316

A FragmentActivity, Android Destek PaketiActivity için oluşturulmuş bir alt sınıftır .

FragmentActivitySınıf Android'in eski sürümleri ile uyumluluğu sağlamak için birkaç yeni yöntemler ekler, ama bunun dışında, gerçekten çok ikisi arasında bir fark yoktur. Sadece emin tüm aramaları değiştirmek yapmak getLoaderManager()ve getFragmentManager()için getSupportLoaderManager()ve getSupportFragmentManager()sırasıyla.


4
Hey getSupportLoaderManager () ve getSupportFragmentManager () için çağrıları değiştirmedim ama yine de iyi çalışıyor.
Çaylak

31
Onu bu kadar tehlikeli yapan şey: P. ve yöntemlerini FragmentActivitydevralır getLoaderManagerve sonuç olarak derleyici şikayette bulunmaz. Muhtemelen yanlış ve sınıfları da içe aktarıyorsunuzdur . Bu sınıfları Android SDK'dan ( ) değil destek paketinden ( ) içe aktardığınızdan emin olun . getFragmentManagerActivityLoaderManagerFragmentManagerandroid.support.v4.appandroid.app
Alex Lockwood

1
Android 2.x sürümü için parçaları kullanmak istiyorsak, Etkinlik'i kullanmamız gereken parçaları destekleyen sürüm için FragmentActivity nad kullanmamız gerektiğini söyleyebilir miyiz?
Çaylak

55
Söylediklerinin doğru olduğunu düşünüyorum. Ama sadece% 100 net olmak için ... Activitykullanıyorsanız android.app.Fragment; kullanmak FragmentActivitykullandığınız takdirde android.support.v4.app.Fragment. Hiç bir takmak android.support.v4.app.Fragmenta android.app.Activitybu bir istisna atılmasına neden olacağından,.
Alex Lockwood

13
İlk önce bu öğreticiyi deneyin ( Fragmentsbir uygulamada nasıl kullanılır ). Ardından, bu eğiticiye devam edin ( Fragmentdestek paketinden nasıl yararlanılır ). Dokümantasyon geliştiriciler sitesinde sıra okunmaya değer olduğunu.
Alex Lockwood

4

FragmentActivitydestek kütüphanesinin bir parçası iken Activityçerçevenin varsayılan sınıfıdır. İşlevsel olarak eşdeğerdirler.

Platform varsayılanı ve sınıfları yerine her zaman FragmentActivityve android.support.v4.app.Fragmentkullanmalısınız . Platform varsayılanlarını kullanmak, üzerinde çalıştığınız cihazda kullanılan parça uygulamalarına güvendiğiniz anlamına gelir. Bunlar genellikle birden çok yaşındadır ve o zamandan beri destek kütüphanesinde düzeltilen hataları içerir.Activityandroid.app.Fragment


1
Not: minSdkVersion26.xx sürümünden bu yana destek kütüphanesinin 14'ü
Eugen Pechanec
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.