22.12.2021 Listeler ve Kodları
Sadece Birazcık Öğreniyoruz
Merhaba dostlar, bu blogda birazcık boş yapacağız, boşumuzu yaparken yeni şeyler öğrenmeye çalışacağız, at gözlüğünü çıkarıp farklı konulara, farklı bakış açılarıyla bakmaya çalışacağız.
22 Aralık 2021 Çarşamba
21.12.2021 Fragmentlar Arası Geçiş ve RecyclerView Oluşumu
İlk baş fragmentların kontrolü için res -> klasörünün altına navigation açıldı, sağ tık - > new -> resource file ekleyerek bir navigation graph eklendi, artık fragmentlarımızı buradan yönetebiliriz. 2 Adet fragment oluşturuldu HomeFragment ve SecondFragment, HomeFragment a bir adet buton eklendi gravitysi center yapıldı. SecondFragment'a ise recyclerview eklendi. home_fragment.xml dosyamıza navhostfragment koyup width ve height ini verdik ve Navigation Graph dosyamızı açtık ve HomeFragment ve SecondFragment burada seçildi. HomeFragment home sayfası seçildi ve HomeFragmenttan, SecondFragmenta action oluşturuldu. Fragmentlar ile işimiz şimdilik bitti gelelim recyclerview için model, data ve adapter classlarının oluşturulmasına. Modelden başlarsak model klasörü oluşturduk ve içine Manzara isminde class açtık. Bu class data olmak zorunda çünkü recyclerview in içine aktaracağımız şeylerin türünü yazacağız(int, String vb.). Bizim recyclerview imiz bir adet Image ve altında bir adet Text olacak şekilde olacağı için model classımız ->
data class Manzara(val stringResource: Int, val imageResourceId: Int)
Şeklinde yaparak iki adet değişken tanımlandı ve bu classta işimiz bitti. Şimdi burada modelimizde kullanılacak şeyleri yazdık bunu xml dosyasında da belirmeliyiz. layout klasöründe bir tane xml dosyası açıyoruz ismi manzara_list.xml olsun içinde bir adet Imageview, bir adet textview koyuyoruz id leri, boyutlarını ayarlıyoruz. Ben düzgün bir görünüm için MaterialCardView yaptım ana kodu altına bir adet linearlayout oluşturdum ve bunların içine imageview ile textview i koydum.
Şu şekilde tanımladık. Şu süreden sonra adapter classımızı oluşturup verilerimizi recyclerview e ulaştıracağız ve recyclerview imizin olduğu homefragment sayfamızda recyclerview i tanımlayıp adapterden gelen kodları çekeceğiz.
Adapter classımızın son hali böyle olacak ve bu sayfa ile işimiz bitecek. Şuan sadece recyclerview activity veya fragmentta bu bilgiyi adapter sayesinde çekmek kaldı. SecondFragmentta yani recyclerview in olduğu bölümde ki kod böyle
val myDataSet = Datasource().loadManzara()
val recyclerView = requireView().findViewById<RecyclerView>(R.id.recyclerview)
recyclerView.adapter = ManzaraAdapter(requireContext(),myDataSet)
recyclerView.setHasFixedSize(true)
}
btngecis = requireActivity().findViewById(R.id.btn_secondfragment)
btngecis.setOnClickListener {
findNavController().navigate(R.id.action_homeFragment_to_recyclerViewFragment)
}