Bir Fragment'in yapıcı fonksiyonunu çağırarak oluşturulmasının nedenleri nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir Fragment'i doğrudan yapıcı (constructor) kullanarak oluşturmak birkaç nedenle yanlıştır:
-
Bundle aracılığıyla argümanların iletilmemesi. Bir fragment oluştururken, parametreleri
Bundleiçine koyan vesetArguments()ile ayarlayan statiknewInstance()metodunun kullanılması önerilir. Bu, sistem tarafından (örneğin ekran döndürme sırasında) yeniden oluşturulduğunda parametrelerin korunmasını sağlar. -
Durumun geri yüklenmesiyle ilgili sorunlar. Fragmentler, parametresiz yapıcı (constructor) kullanılarak Android sistemi tarafından yeniden oluşturulabilir. Parametrelerle özel bir yapıcı kullanırsanız, sistem fragmenti doğru şekilde geri yükleyemez.
-
Yaşam döngüsü ihlali. Android, fragmentlerin parametresiz ve genel bir yapıcıya sahip olmasını bekler. Diğer yapıcıların kullanılması, durumun geri yüklenmesinde hatalara yol açabilir.
Doğru fragment oluşturma örneği:
class MyFragment : Fragment() {
companion object {
fun newInstance(param: String): MyFragment {
val fragment = MyFragment()
val args = Bundle()
args.putString("param_key", param)
fragment.arguments = args
return fragment
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val param = arguments?.getString("param_key")
// parametreyi kullan
}
}
Bu şekilde, yapıcı kullanarak fragment oluşturmak önerilere aykırıdır ve uygulama çalışmasında hatalara yol açabilir.