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.
Bilmeniz gerekenler
- Kotlin'de temel bir Android uygulaması oluşturma
- Android uygulamasını emülatörde veya cihazda çalıştırma
- Android Studio'nun Düzen Düzenleyicisi'ni kullanarak doğrusal düzen oluşturma .
LinearLayout,TextView,ScrollViewve tıklama işleyicisi olan bir düğme kullanan basit bir uygulama oluşturma.
Neler öğreneceksiniz?
EditTextGörünümEditTextkullanarak kullanıcı girişi almaEditTextgörünümündeki metni kullanarak metniTextViewgörünümüne ayarlamaViewveViewGroupile çalışmaViewgörünürlüğünü değiştirme
Yapacaklarınız
- Önceki bir codelab'den alınan AboutMe uygulamasına etkileşim ekleyin.
- Kullanıcının metin girebilmesi için
EditTextekleyin. Buttonekleyin ve tıklama işleyicisini uygulayın.
Bu codelab'de, AboutMe uygulamasını genişleterek kullanıcı etkileşimi ekleyeceksiniz. Takma ad alanı, BİTTİ düğmesi ve takma adı görüntülemek için bir metin görünümü eklersiniz. Kullanıcı bir takma ad girip BİTTİ düğmesine dokunduktan sonra, metin görünümü güncellenerek girilen takma ad gösterilir. Kullanıcı, metin görünümüne dokunarak takma adı tekrar güncelleyebilir.
|
|
Bu görevde, kullanıcının takma ad girebilmesi için bir EditText giriş alanı ekleyeceksiniz.
1. adım: Başlayın
- Önceki bir codelab'den AboutMe uygulamanız yoksa başlangıç kodunu (AboutMeInteractive-Starter) indirin. Bu, önceki bir codelab'de tamamladığınız kodun aynısıdır.
- Android Studio'da AboutMeInteractive-Starter projesini açın.
- Uygulamayı çalıştırın. Bir ad metin görünümü, bir yıldız resmi ve kaydırma görünümünde uzun bir metin segmenti görürsünüz.

Kullanıcının metinlerden hiçbirini değiştiremediğini fark edin.
Kullanıcının uygulamayla etkileşime geçebildiği (ör. metin girebildiği) uygulamalar daha ilgi çekicidir. Android, metin girişini kabul etmek için düzenlenebilir metin adlı bir kullanıcı arayüzü (UI) widget'ı sağlar. EditText (TextView alt sınıfı) kullanarak bir düzenleme metni tanımlarsınız. Düzenleme metni, kullanıcının metin girişi yapmasına ve bunu değiştirmesine olanak tanır. Bu durum, aşağıdaki ekran görüntüsünde gösterilmiştir.

2. adım: EditText ekleyin
- Android Studio'da
activity_main.xmldüzen dosyasını Tasarım sekmesinde açın. - Palet bölmesinde Metin'i tıklayın.

Ab TextView,TextView, Palet bölmesindeki metin öğeleri listesinin en üstünde gösterilir. Ab TextView'in altında birden fazlaEditTextgörünüm bulunur.
Palet bölmesinde,TextViewsimgesinin Ab harflerini alt çizgisiz olarak gösterdiğini fark edin. AncakEditTextsimgelerinde Ab ifadesinin altı çizili olarak gösteriliyor. Alt çizgi, görünümün düzenlenebilir olduğunu gösterir.
Android,EditTextgörünümlerinin her biri için farklı özellikler ayarlar ve sistem, uygun sanal giriş yöntemini (ör. ekran klavyesi) gösterir. - PlainText düzenleme metnini Component Tree'ye (Bileşen Ağacı) sürükleyin ve
name_text'nin altına,star_image'ün üstüne yerleştirin.
EditTextgörünümünde aşağıdaki özellikleri ayarlamak için Özellikler bölmesini kullanın.
Özellik | Değer |
|
|
|
|
|
|
- Uygulamanızı çalıştırın. Yıldız resminin üzerinde, varsayılan metin olarak "Ad" yazan bir düzenleme metni görürsünüz.

Bu görevde, ipucu ekleyerek, metin hizalamasını değiştirerek, stili NameStyle olarak değiştirerek ve giriş türünü ayarlayarak EditText görünümünü şekillendiriyorsunuz.
1. adım: İpucu metni ekleyin
string.xmldosyasında ipucu için yeni bir dize kaynağı ekleyin.
<string name="what_is_your_nickname">What is your Nickname?</string>- Aşağıdaki özellikleri
EditTextgörünümüne ayarlamak için Özellikler bölmesini kullanın:
Özellik | Değer |
|
|
|
|
|
|
- Özellikler bölmesinde,
textözelliğindenNamedeğerini kaldırın. İpucunun gösterilmesi içintextözelliği değeri boş olmalıdır.
2. adım: inputType özelliğini ayarlayın
inputType özelliği, kullanıcıların EditText görünümünde girebileceği giriş türünü belirtir. Android sistemi, ayarlanan giriş türüne bağlı olarak uygun giriş alanını ve dokunmatik klavyeyi gösterir.
Olası tüm giriş türlerini görmek için Özellikler bölmesinde inputType alanını veya alanın yanındaki üç nokta simgesini ... tıklayın. Kullanabileceğiniz tüm giriş türlerini gösteren bir liste açılır. Şu anda etkin olan giriş türü işaretlenir. Birden fazla giriş türü seçebilirsiniz.

Örneğin, şifreler için textPassword değerini kullanın. Metin alanı, kullanıcının girişini gizler.

Telefon numaraları için phone değerini kullanın. Sayısal tuş takımı gösterilir ve kullanıcı yalnızca sayı girebilir.

Takma ad alanı için giriş türünü ayarlayın:
nickname_editdüzenleme metniiçininputTypeözelliğinitextPersonNameolarak ayarlayın.- Bileşen Ağacı bölmesinde
autoFillHintsuyarısını görürsünüz. Bu uyarı bu uygulama için geçerli değildir ve bu codelab'in kapsamı dışındadır. Bu nedenle, uyarıyı yoksayabilirsiniz. (Otomatik doldurma hakkında daha fazla bilgi edinmek istiyorsanız Uygulamanızı otomatik doldurma için optimize etme başlıklı makaleyi inceleyin.)
- Özellikler bölmesinde,
EditTextgörünümünün aşağıdaki özelliklerinin değerlerini doğrulayın:
Özellik | Değer |
|
|
|
|
|
|
|
|
|
|
|
|
| (boş) |
Button, kullanıcının bir işlem gerçekleştirmek için dokunabileceği bir kullanıcı arayüzü öğesidir. Düğmeler metin, simge veya hem metin hem de simge içerebilir.

Bu görevde, kullanıcının bir takma ad girdikten sonra dokunacağı bir BİTTİ düğmesi ekleyeceksiniz. Bu düğme, EditText görünümünü, takma adı gösteren bir TextView görünümüyle değiştirir. Kullanıcı, takma adı güncellemek için TextView görünümüne dokunabilir.
1. adım: BİRİM düğmesi ekleyin
- Palet bölmesinden bir düğmeyi Bileşen Ağacı'na sürükleyin. Düğmeyi
nickname_editmetni düzenle
seçeneğinin altına yerleştirin.

doneadlı yeni bir dize kaynağı oluşturun. DizeyeDonedeğerini verin.
<string name="done">Done</string>- Yeni eklenen
Buttongörünümünde aşağıdaki özellikleri ayarlamak için Özellikler bölmesini kullanın:
Özellik | Değerler |
|
|
|
|
|
|
|
|
layout_gravity özelliği, görünümü üst düzeni olan LinearLayout'de ortalar.
- Stili, Android'in sağladığı önceden tanımlanmış stillerden biri olan
Widget.AppCompat.Button.Coloredolarak değiştirin. Stili açılır listeden veya Kaynaklar penceresinden seçebilirsiniz.
Bu stil, düğme rengini vurgu rengicolorAccentolarak değiştirir. Vurgu rengi,res/values/colors.xmldosyasında tanımlanır.
colors.xml dosyası, uygulamanızın varsayılan renklerini içerir. Uygulamanızın gereksinimlerine göre projenize yeni renk kaynakları ekleyebilir veya mevcut renk kaynaklarını değiştirebilirsiniz.
Örnek colors.xml dosyası:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
</resources>2. adım: BİTTİ düğmesini stilize edin
- Özellikler bölmesinde Layout_Margin > Top'ı (Düzen_Kenar Boşluğu > Üst) seçerek üst kenar boşluğu ekleyin. Üst kenar boşluğunu
layout_marginolarak ayarlayın. Bu değer,dimens.xmldosyasında tanımlanır.
- Açılır menüden
fontFamilyözelliğinirobotoolarak ayarlayın.
- Metin sekmesine geçin ve yeni eklenen düğme için oluşturulan XML kodunu doğrulayın.
<Button
android:id="@+id/done_button"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/layout_margin"
android:fontFamily="@font/roboto"
android:text="@string/done" />3. adım: Renk kaynağını değiştirin
Bu adımda, düğmenin vurgu rengini etkinliğinizin uygulama çubuğuyla eşleşecek şekilde değiştirirsiniz.
res/values/colors.xmldosyasını açın vecolorAccentdeğerini#76bf5eolarak değiştirin.
<color name="colorAccent">#76bf5e</color>HEX koduna karşılık gelen rengi, dosya düzenleyicinin sol kenar boşluğunda görebilirsiniz.

Tasarım düzenleyicideki düğme renginin değiştiğini fark edin.
- Uygulamanızı çalıştırın. Düzenleme metninin altında stil verilmiş bir DONE (BİTTİ) düğmesi görmeniz gerekir.

Kullanıcı bir takma ad girip BİTTİ düğmesine dokunduktan sonra takma ad, TextView görünümünde gösterilir. Bu görevde, renkli arka plana sahip bir metin görünümü ekleyeceksiniz. Metin görünümünde kullanıcının takma adı star_image simgesinin üzerinde gösterilir.
1. adım: Takma ad için bir TextView ekleyin
- Palet bölmesinden bir metin görünümünü Bileşen Ağacı'na sürükleyin. Metin görünümünü
done_buttonöğesinin altına vestar_imageöğesinin üstüne yerleştirin.
- Yeni
TextViewgörünümü için aşağıdaki özellikleri ayarlamak üzere Özellikler bölmesini kullanın:
Özellik | Değer |
|
|
|
|
|
|
2. adım: TextView'un görünürlüğünü değiştirin
visibility özelliğini kullanarak uygulamanızdaki görünümleri gösterebilir veya gizleyebilirsiniz. Bu özellik üç değerden birini alır:
visible: Görünüm görünür durumdadır.Invisible: Görünümü gizler ancak görünüm, düzende yer kaplamaya devam eder.gone: Görünümü gizler ve görünüm, düzende yer kaplamaz.
- Uygulamanızın bu metin görünümünü ilk başta göstermesini istemediğiniz için Özellikler bölmesinde
nickname_textmetin görünümününvisibilityözelliğinigoneolarak ayarlayın.
Özellikler bölmesinde özelliği değiştirdiğinizdenickname_textgörünümünün tasarım düzenleyicisinden kaybolduğunu unutmayın. Görünüm, düzen önizlemesinde gizlenir. nickname_textgörünümününtextözellik değerini boş bir dizeyle değiştirin.
Bu TextView için oluşturulan XML kodunuz aşağıdaki gibi görünmelidir:
<TextView
android:id="@+id/nickname_text"
style="@style/NameStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:visibility="gone"
android:text="" />Düzen önizlemeniz aşağıdaki gibi görünmelidir:

Button nesnesindeki (veya herhangi bir görünümdeki) bir tıklama işleyicisi, düğmeye (görünüm) dokunulduğunda gerçekleştirilecek işlemi belirtir. Tıklama etkinliğini işleyen işlev, düğmeyi (görünüm) içeren düzeni barındıran Activity içinde uygulanmalıdır.
Tıklama işleyici genellikle bu biçimdedir. Burada, iletilen görünüm, tıklama veya dokunma işlemini alan görünümdür.
private fun clickHandlerFunction(viewThatIsClicked: View) {
// Add code to perform the button click event
}Tıklama işleyici işlevini düğme tıklama etkinliklerine iki şekilde ekleyebilirsiniz:
- XML düzeninde,
<Button>öğesineandroid:onClicközelliğini ekleyebilirsiniz. Örneğin:
<Button
android:id="@+id/done_button"
android:text="@string/done"
...
android:onClick="clickHandlerFunction"/>VEYA
- Bu işlemi,
setOnClickListenerişlevini çağırarak çalışma zamanındaonCreate()içinde programatik olarak yapabilirsiniz.ActivityÖrneğin:
myButton.setOnClickListener {
clickHanderFunction(it)
}Bu görevde, done_button için programatik olarak bir tıklama dinleyicisi ekleyeceksiniz. Tıklama işleyiciyi, MainActivity.kt olan ilgili etkinliğe eklersiniz.
addNickname adlı tıklama dinleyici işleviniz şunları yapar:
nickname_editmetni düzenle'den metni alın.- Metni
nickname_textmetin görünümünde ayarlayın. - Düzenleme metnini ve düğmeyi gizleyin.
- Takma adı gösterin
TextView.
1. adım: Tıklama işleyici ekleyin
- Android Studio'da
javaklasöründeMainActivity.ktdosyasını açın. MainActivity.ktiçinde,MainActivitysınıfınaaddNicknameadlı bir işlev ekleyin.viewadlı bir giriş parametresi ekleyin. Bu parametrenin türüViewolmalıdır.viewparametresi, işlevin çağrıldığıView'dir. Bu durumda,view, DONE düğmenizin bir örneği olur.
private fun addNickname(view: View) {
}addNicknameişlevinin içinde,nickname_editdüzenleme metnine venickname_textmetin görünümüne referans almak içinfindViewById()kullanın.
val editText = findViewById<EditText>(R.id.nickname_edit)
val nicknameTextView = findViewById<TextView>(R.id.nickname_text)nicknameTextViewmetin görünümündeki metni, kullanıcınıneditTextalanına girdiği metin olarak ayarlayın ve bu metnitextözelliğinden alın.
nicknameTextView.text = editText.texteditTextöğesininvisibilityözelliğiniView.GONEolarak ayarlayarak takma adEditTextgörünümünü gizleyin.
Önceki bir görevde, Düzen Düzenleyici'yi kullanarak visibility özelliğini değiştirdiniz. Burada da aynı işlemi programatik olarak yaparsınız.
editText.visibility = View.GONEvisibilityözelliğiniView.GONEolarak ayarlayarak BİTTİ düğmesini gizleyin. Düğmenin referansı, işlevin giriş parametresi olarak zaten mevcut (view).
view.visibility = View.GONEaddNicknameişlevinin sonunda,visibilityözelliğiniView.VISIBLEolarak ayarlayarakTextViewtakma adı görünümünü görünür hale getirin.
nicknameTextView.visibility = View.VISIBLE2. adım: Tıklama işleyicisini BİTTİ düğmesine ekleyin
DONE (BİTTİ) düğmesine dokunulduğunda gerçekleştirilecek işlemi tanımlayan bir işleviniz olduğuna göre, bu işlevi Button görünümüne eklemeniz gerekir.
MainActivity.ktiçinde,onCreate()işlevinin sonunda DONEButtongörünümüne bir referans alın.findViewById()işlevini kullanın vesetOnClickListenernumaralı telefonu arayın. Tıklama işleyici işlevine bir referans iletin,addNickname().
findViewById<Button>(R.id.done_button).setOnClickListener {
addNickname(it)
}Yukarıdaki kodda it, bağımsız değişken olarak iletilen görünüm olan done_button'yi ifade eder.
- Uygulamanızı çalıştırın, bir takma ad girin ve BİTTİ düğmesine dokunun. Düzenleme metninin ve düğmenin, takma ad metin görünümüyle nasıl değiştirildiğine dikkat edin.
|
|
Kullanıcı BİTTİ düğmesine dokunduktan sonra bile klavyenin görünür kaldığını unutmayın. Bu davranış varsayılandır.
3. adım: Klavyeyi gizleyin
Bu adımda, kullanıcı DONE (Bitti) düğmesine dokunduktan sonra klavyeyi gizlemek için kod ekleyeceksiniz.
MainActivity.ktiçinde,addNickname()işlevinin sonuna aşağıdaki kodu ekleyin. Bu kodun nasıl çalıştığı hakkında daha fazla bilgi edinmek istiyorsanızhideSoftInputFromWindowdokümanlarını inceleyin.
// Hide the keyboard.
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)- Uygulamanızı tekrar çalıştırın. BİTTİ'ye dokunduktan sonra klavyenin gizlendiğini fark edeceksiniz.
|
|
Kullanıcılar BİTTİ düğmesine dokunduktan sonra takma adı değiştiremez. Bir sonraki görevde, uygulamayı daha etkileşimli hale getirecek ve kullanıcıların takma adı güncelleyebilmesi için işlevsellik ekleyeceksiniz.
Bu görevde, takma ad metin görünümüne bir tıklama dinleyicisi ekleyeceksiniz. Tıklama dinleyicisi, takma ad metin görünümünü gizler, düzenleme metnini ve BİTTİ düğmesini gösterir.
1. adım: Tıklama işleyici ekleyin
MainActivityiçinde, takma ad metin görünümü içinupdateNickname(view: View)adlı bir tıklama dinleyici işlevi ekleyin.
private fun updateNickname (view: View) {
}updateNicknameişlevinde,nickname_editdüzenleme metnine ve BİTTİ düğmesine referans alın. Bunun içinfindViewById()yöntemini kullanın.
val editText = findViewById<EditText>(R.id.nickname_edit)
val doneButton = findViewById<Button>(R.id.done_button)updateNicknameişlevinin sonuna, düzenleme metnini göstermek, BİTTİ düğmesini göstermek ve metin görünümünü gizlemek için kod ekleyin.
editText.visibility = View.VISIBLE
doneButton.visibility = View.VISIBLE
view.visibility = View.GONEMainActivity.ktiçinde,onCreate()işlevinin sonundanickname_textmetin görünümündesetOnClickListenerişlevini çağırın. Tıklama işleyici işlevine (updateNickname()) bir referans iletin.
findViewById<TextView>(R.id.nickname_text).setOnClickListener {
updateNickname(it)
}- Uygulamanızı çalıştırın. Bir takma ad girin, DONE (Bitti) düğmesine ve ardından takma ad
TextViewgörünümüne dokunun. Takma ad görünümü kaybolur, düzenleme metni ve BİTTİ düğmesi görünür.
Varsayılan olarak EditText görünümünün odaklanmadığını ve klavyenin görünmediğini unutmayın. Kullanıcının, takma ad metin görünümünün tıklanabilir olduğunu anlaması zordur. Bir sonraki görevde, odak ve stil ekleyerek takma ad metin görünümünü düzenleyeceksiniz.
2. adım: Odak noktasını EditText görünümüne ayarlayın ve klavyeyi gösterin
updateNicknameişlevinin sonunda odağıEditTextgörünümüne ayarlayın.requestFocus()yöntemini kullanın.
// Set the focus to the edit text.
editText.requestFocus()updateNicknameişlevinin sonuna klavyeyi görünür kılacak kodu ekleyin.
// Show the keyboard.
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(editText, 0)3. adım: Takma ad TextView görünümüne arka plan rengi ekleyin
nickname_textmetin görünümünün arka plan rengini@color/colorAccentolarak ayarlayın ve@dimen/small_paddingalt dolgusunu ekleyin. Bu değişiklikler, kullanıcıya takma ad metin görünümünün tıklanabilir olduğu konusunda ipucu verir.
android:background="@color/colorAccent"
android:paddingBottom="@dimen/small_padding"- Son uygulamanızı çalıştırın. Düzenleme metni odaklanmış durumda, takma ad düzenleme metninde gösteriliyor ve takma ad metin görünümü stilize edilmiş.
|
|
Şimdi etkileşimli AboutMe uygulamanızı bir arkadaşınıza gösterin.
Android Studio projesi: AboutMeInteractive
- Android Studio'daki Layout Editor aracı, görsel tasarım düzenleyicisidir. Kullanıcı arayüzü öğelerini düzeninize sürükleyerek uygulamanızın düzenini oluşturmak için Düzen Düzenleyici'yi kullanabilirsiniz.
EditText, kullanıcının metin girmesine ve değiştirmesine olanak tanıyan bir kullanıcı arayüzü öğesidir.Button, kullanıcının bir işlem gerçekleştirmek için dokunabileceği bir kullanıcı arayüzü öğesidir. Düğmeler metin, simge veya hem metin hem de simge içerebilir.
Tıklama işleyiciler
- Tıklama dinleyici ekleyerek herhangi bir
Viewöğesinin dokunmaya yanıt vermesini sağlayabilirsiniz. - Tıklama işleyicisini tanımlayan işlev, tıklanan
Viewöğesini alır.
Bir View öğesine tıklama dinleyici işlevi eklemenin iki yolu vardır:
- XML düzeninde,
<View>öğesineandroid:onClicközelliğini ekleyin. - Programatik olarak, ilgili
ActivityiçindesetOnClickListener(View.OnClickListener)işlevini kullanın.
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
EditText hangi sınıfın alt sınıfıdır?
ViewLinearLayoutTextViewButton
2. Soru
Aşağıdaki visibility özellik değerlerinden hangisi bir görünümde ayarlanırsa görünüm gizlenir ve düzende yer kaplamaz?
visibleInvisiblegonehide
3. Soru
EditText görünümlerinde ipuçları giriş alanını karıştırdığından ipucu vermek iyi bir uygulama değildir. Doğru mu yanlış mı?
- Doğru
- Yanlış
4. Soru
Aşağıdaki ifadelerden hangisi Button görünümleri hakkında doğrudur?
Buttongörünümü, bir görünüm grubudur.- Ekran başına yalnızca üç
Buttongörünüm olabilir. Buttongörünümleri tıklanabilir ve tıklama üzerine eklenen tıklama işleyici bir işlem gerçekleştirir.Button,ImageView'ın uzantısıdır.
Bir sonraki derse başlayın:
Bu kurstaki diğer codelab'lerin bağlantılarını Android Kotlin Hakkında Temel Bilgiler codelab'leri açılış sayfasında bulabilirsiniz.


(merkez)
(merkez)

