Android Kotlin Hakkında Temel Bilgiler 03.1: Parça oluşturma

Bu codelab, Android Kotlin Hakkında Temel Bilgiler kursunun bir parçasıdır. Bu kurstan en iyi şekilde yararlanmak için codelab'leri sırayla tamamlamanızı öneririz. Kursla ilgili tüm codelab'ler Android Kotlin Hakkında Temel Bilgiler codelab'leri açılış sayfasında listelenir.

Bu codelab'de parçalar hakkında bilgi edinecek ve AndroidTrivia adlı başlangıç uygulamasında bir parça oluşturacaksınız. Bir sonraki codelab'de gezinme hakkında daha fazla bilgi edinecek ve AndroidTrivia uygulamasında daha fazla çalışma yapacaksınız.

Bilmeniz gerekenler

  • Kotlin'in temelleri
  • Kotlin'de temel Android uygulamaları oluşturma
  • Düzenlerle çalışma

Neler öğreneceksiniz?

  • Uygulamanıza statik olarak Fragment ekleme

Yapacaklarınız

  • Bir etkinlik içinde parça oluşturun.

Bu dersi oluşturan üç codelab'de AndroidTrivia adlı bir uygulama üzerinde çalışacaksınız. Tamamlanan uygulama, kullanıcının Android kodlamayla ilgili üç bilgi yarışması sorusunu yanıtladığı bir oyundur. Kullanıcı üç soruyu da doğru yanıtlarsa oyunu kazanır ve sonuçlarını paylaşabilir.

AndroidTrivia uygulaması, gezinme kalıplarını ve kontrollerini gösterir. Uygulamanın çeşitli bileşenleri vardır:

  • Yukarıdaki ekran görüntüsünde solda gösterilen başlık ekranında kullanıcı oyunu başlatır.
  • Ortada yukarıda gösterilen sorulu oyun ekranında kullanıcı oyunu oynar ve cevaplarını gönderir.
  • Sağ üstte gösterilen gezinme çekmecesi, uygulamanın kenarından kayarak açılır ve başlık içeren bir menü içerir. Çekmece simgesi gezinme çekmecesini açar. Gezinme çekmecesi menüsünde Hakkında sayfasına ve oyun kurallarına ait bağlantılar bulunur.

Uygulamanın üst kısmında, işlem çubuğu olarak da bilinen uygulama çubuğu adlı renkli bir görünüm bulunur.

Bu codelab'de, Bilgi Yarışması uygulamasını tamamlarken ihtiyacınız olan şablon kodunu ve parça sınıflarını sağlayan bir başlangıç uygulamasından çalışacaksınız.

  1. AndroidTrivia-Starter Android Studio projesini indirin.
  2. Projeyi Android Studio'da açın ve uygulamayı çalıştırın. Uygulama açıldığında, uygulama adını ve boş bir ekran görüntülemek dışında hiçbir şey yapmaz.


  3. Proje dosyalarını incelemek için Android Studio Proje bölmesinde Proje: Android görünümünü açın. MainActivity sınıfını ve parça sınıflarını görmek için app > java klasörünü açın.

  4. res > layout klasörünü açın ve activity_main.xml dosyasını çift tıklayın. activity_main.xml dosyası, Düzen Düzenleyici'de görünür.
  5. Tasarım sekmesini tıklayın. activity_main.xml dosyası için Bileşen Ağacı, kök düzeni dikey LinearLayout olarak gösterir.



    Dikey doğrusal düzende, düzendeki tüm alt görünümler dikey olarak hizalanır.

Parça, bir etkinlikteki davranışı veya kullanıcı arayüzünün (UI) bir bölümünü temsil eder. Çok panelli bir kullanıcı arayüzü oluşturmak için tek bir etkinlikte birden fazla parçayı birleştirebilir ve bir parçayı birden fazla etkinlikte yeniden kullanabilirsiniz.

Parçayı, bir etkinliğin modüler bölümü olarak düşünebilirsiniz. Bu, diğer etkinliklerde de kullanabileceğiniz bir "alt etkinlik" gibidir:

  • Parçanın kendi yaşam döngüsü vardır ve kendi giriş etkinliklerini alır.
  • Etkinlik çalışırken bir parça ekleyebilir veya kaldırabilirsiniz.
  • Parça, Kotlin sınıfında tanımlanır.
  • Bir parçanın kullanıcı arayüzü, XML düzen dosyasında tanımlanır.

AndroidTrivia uygulamasında bir ana etkinlik ve birkaç parça var. Çoğu parça ve bunların düzen dosyaları sizin için tanımlanmıştır. Bu görevde bir parça oluşturacak ve parçayı uygulamanın ana etkinliğine ekleyeceksiniz.

1. adım: Bir parça sınıfı ekleyin

Bu adımda boş bir TitleFragment sınıfı oluşturursunuz. Yeni bir parça için Kotlin sınıfı oluşturarak başlayın:

  1. Android Studio'da, odağı proje dosyalarına geri getirmek için Proje bölmesinin herhangi bir yerini tıklayın. Örneğin, com.example.android.navigation klasörünü tıklayın.
  2. Dosya > Yeni > Parça > Parça (Boş) seçeneğini belirleyin.
  3. Parça adı için TitleFragment'ı kullanın. Layout XML oluştur, parça fabrika yöntemlerini dahil et ve arayüz geri çağırmalarını dahil et dahil olmak üzere tüm onay kutularının işaretini kaldırın.
  4. Son'u tıklayın.
  5. Henüz açık değilse TitleFragment.kt parça dosyasını açın. Bu yöntem, onCreateView() yöntemini içerir. Bu yöntem, bir parçanın yaşam döngüsü sırasında çağrılan yöntemlerden biridir.
  6. onCreateView() içinde, setText ile başlayan satır da dahil olmak üzere return TextView(activity).apply bölümünü kaldırın. onCreateView() işlevinde yalnızca aşağıdaki kod kalır:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                         savedInstanceState: Bundle?): View? {
}

Bağlama nesnesi oluşturma

Parça şu anda derlenmeyecek. Parçanın derlenmesi için bir bağlama nesnesi oluşturmanız ve parçanın görünümünü genişletmeniz gerekir (bu, bir etkinlik için setContentView() kullanmaya eşdeğerdir).

  1. onCreateView() yönteminde TitleFragment.kt, binding değişkeni oluşturun (val binding).
  2. Parçanın görünümünü genişletmek için parçanın Binding nesnesinde DataBindingUtil.inflate() yöntemini çağırın. Bu nesne FragmentTitleBinding'dir.

    Yönteme dört parametre iletin:
  • inflater, bağlama düzenini genişletmek için kullanılan LayoutInflater'dir.
  • Şişirilecek düzenin XML düzen kaynağı. Sizin için önceden tanımlanmış düzenlerden birini kullanın (R.layout.fragment_title).
  • container üst öğesi için ViewGroup. (Bu parametre isteğe bağlıdır.)
  • false değeri için attachToParent.
  1. DataBindingUtil.inflate tarafından döndürülen bağlamayı binding değişkenine atayın.
  2. Şişirilmiş görünümü içeren yöntemden binding.root döndürülür. onCreateView() yönteminiz artık aşağıdaki koda benziyor:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                         savedInstanceState: Bundle?): View? {
   val binding = DataBindingUtil.inflate<FragmentTitleBinding>(inflater,
           R.layout.fragment_title,container,false)
   return binding.root
   }

2. adım: Yeni parçayı ana düzen dosyasına ekleyin

Bu adımda, TitleFragment öğesini uygulamanın activity_main.xml düzen dosyasına eklersiniz.

  1. res > layout > activity_main.xml dosyasını açın ve düzen XML kodunu görüntülemek için Text (Metin) sekmesini tıklayın.
  2. Mevcut LinearLayout öğesinin içine bir fragment öğesi ekleyin.
  3. Parçanın kimliğini titleFragment olarak ayarlayın.
  4. Parçanın adını, parça sınıfının tam yolu olarak ayarlayın. Bu örnekte tam yol com.example.android.navigation.TitleFragment'dır.
  5. Düzen genişliğini ve yüksekliğini match_parent olarak ayarlayın.
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <fragment
                android:id="@+id/titleFragment"
                android:name="com.example.android.navigation.TitleFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                />
        </LinearLayout>

</layout>
  1. Uygulamayı çalıştırın. Parça, ana ekranınıza eklenir.

Android Studio projesi: AndroidTriviaFragment

Bu codelab'de, AndroidTrivia uygulamasına bir parça eklediniz. Bu uygulamayı, bu dersteki sonraki iki codelab'de de kullanmaya devam edeceksiniz.

  • Parça, bir etkinliğin modüler bölümüdür.
  • Parçanın kendi yaşam döngüsü vardır ve kendi giriş etkinliklerini alır.
  • XML düzen dosyasındaki parçanın düzenini tanımlamak için <fragment> etiketini kullanın.
  • onCreateView() içindeki bir parça için düzeni genişletin.
  • Etkinlik çalışırken bir parça ekleyebilir veya kaldırabilirsiniz.

Udacity kursu:

Android geliştirici belgeleri:

Bu bölümde, bir eğitmenin yönettiği kurs kapsamında bu codelab'i tamamlayan öğrenciler için olası ödevler listelenmektedir. Eğitmen, aşağıdakileri yapmalıdır:

  • Gerekirse ödev atayın.
  • Öğrencilere ev ödevi ödevlerini nasıl göndereceklerini bildirin.
  • Ödevlere not verin.

Eğitmenler bu önerileri istedikleri kadar kullanabilir ve uygun olduğunu düşündükleri diğer ödevleri verebilirler.

Bu codelab'i kendi başınıza tamamlıyorsanız bilginizi test etmek için bu ödevleri kullanabilirsiniz.

Bu soruları yanıtlayın

1. Soru

Parçalar ve etkinlikler arasındaki farklar nelerdir? Doğru olan tüm ifadeleri seçin.

  • Parça oluştururken onCreateView() yönteminde düzeni genişletirsiniz. Bir etkinlik oluştururken düzeni onCreate() içinde genişletirsiniz.
  • Etkinliklerin kendi düzenleri vardır ancak parçaların kendi düzenleri olamaz.
  • Etkinliklerin kendi yaşam döngüsü vardır ancak parçaların yoktur.
  • Bir parça veya etkinlik için düzeni genişletirken düzene R.layout.layoutname olarak başvurabilirsiniz.

2. Soru

Aşağıdaki ifadelerden hangisi parçacıklar hakkında doğrudur? Uygun olan tüm seçenekleri işaretleyin.

  • Bir parçayı birden fazla etkinlikte kullanabilirsiniz.
  • Bir etkinlikte birden fazla parça olabilir.
  • Bir Kotlin sınıfında bir parça tanımladığınızda bu parça otomatik olarak activity_main.xml düzen dosyasına eklenir.
  • Bir düzen dosyasında parçanın ekleneceği yeri tanımlamak için <fragment> etiketini kullanın.

Sonraki derse başlayın: 3.2 Gezinme yollarını tanımlama

Bu kurstaki diğer codelab'lerin bağlantılarını Android Kotlin Hakkında Temel Bilgiler codelab'leri açılış sayfasında bulabilirsiniz.