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
,ScrollView
ve tıklama işleyicisi olan bir düğme kullanan basit bir uygulama oluşturma.
Neler öğreneceksiniz?
EditText
GörünümEditText
kullanarak kullanıcı girişi almaEditText
görünümündeki metni kullanarak metniTextView
görünümüne ayarlamaView
veViewGroup
ile çalışmaView
gö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
EditText
ekleyin. Button
ekleyin 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.xml
dü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 fazlaEditText
görünüm bulunur.
Palet bölmesinde,TextView
simgesinin Ab harflerini alt çizgisiz olarak gösterdiğini fark edin. AncakEditText
simgelerinde Ab ifadesinin altı çizili olarak gösteriliyor. Alt çizgi, görünümün düzenlenebilir olduğunu gösterir.
Android,EditText
gö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. EditText
gö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.xml
dosyasında ipucu için yeni bir dize kaynağı ekleyin.
<string name="what_is_your_nickname">What is your Nickname?</string>
- Aşağıdaki özellikleri
EditText
görünümüne ayarlamak için Özellikler bölmesini kullanın:
Özellik | Değer |
|
|
|
|
|
|
- Özellikler bölmesinde,
text
özelliğindenName
değ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_edit
düzenleme metniiçininputType
özelliğinitextPersonName
olarak ayarlayın.- Bileşen Ağacı bölmesinde
autoFillHints
uyarı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,
EditText
gö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_edit
metni düzenle
seçeneğinin altına yerleştirin. done
adlı yeni bir dize kaynağı oluşturun. DizeyeDone
değerini verin.
<string name="done">Done</string>
- Yeni eklenen
Button
gö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.Colored
olarak değiştirin. Stili açılır listeden veya Kaynaklar penceresinden seçebilirsiniz.
Bu stil, düğme rengini vurgu rengicolorAccent
olarak değiştirir. Vurgu rengi,res/values/colors.xml
dosyası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_margin
olarak ayarlayın. Bu değer,dimens.xml
dosyasında tanımlanır. - Açılır menüden
fontFamily
özelliğiniroboto
olarak 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.xml
dosyasını açın vecolorAccent
değerini#76bf5e
olarak 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
TextView
gö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_text
metin görünümününvisibility
özelliğinigone
olarak ayarlayın.
Özellikler bölmesinde özelliği değiştirdiğinizdenickname_text
görünümünün tasarım düzenleyicisinden kaybolduğunu unutmayın. Görünüm, düzen önizlemesinde gizlenir. nickname_text
gö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,
setOnClickListener
iş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_edit
metni düzenle'den metni alın.- Metni
nickname_text
metin 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
java
klasöründeMainActivity.kt
dosyasını açın. MainActivity.kt
içinde,MainActivity
sınıfınaaddNickname
adlı bir işlev ekleyin.view
adlı bir giriş parametresi ekleyin. Bu parametrenin türüView
olmalıdır.view
parametresi, işlevin çağrıldığıView
'dir. Bu durumda,view
, DONE düğmenizin bir örneği olur.
private fun addNickname(view: View) {
}
addNickname
işlevinin içinde,nickname_edit
düzenleme metnine venickname_text
metin 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)
nicknameTextView
metin görünümündeki metni, kullanıcınıneditText
alanına girdiği metin olarak ayarlayın ve bu metnitext
özelliğinden alın.
nicknameTextView.text = editText.text
editText
öğesininvisibility
özelliğiniView.GONE
olarak ayarlayarak takma adEditText
gö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.GONE
visibility
özelliğiniView.GONE
olarak ayarlayarak BİTTİ düğmesini gizleyin. Düğmenin referansı, işlevin giriş parametresi olarak zaten mevcut (view
).
view.visibility = View.GONE
addNickname
işlevinin sonunda,visibility
özelliğiniView.VISIBLE
olarak ayarlayarakTextView
takma adı görünümünü görünür hale getirin.
nicknameTextView.visibility = View.VISIBLE
2. 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.kt
içinde,onCreate()
işlevinin sonunda DONEButton
görünümüne bir referans alın.findViewById()
işlevini kullanın vesetOnClickListener
numaralı 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.kt
içinde,addNickname()
işlevinin sonuna aşağıdaki kodu ekleyin. Bu kodun nasıl çalıştığı hakkında daha fazla bilgi edinmek istiyorsanızhideSoftInputFromWindow
dokü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
MainActivity
iç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) {
}
updateNickname
işlevinde,nickname_edit
dü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)
updateNickname
iş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.GONE
MainActivity.kt
içinde,onCreate()
işlevinin sonundanickname_text
metin görünümündesetOnClickListener
iş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
TextView
gö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
updateNickname
işlevinin sonunda odağıEditText
görünümüne ayarlayın.requestFocus()
yöntemini kullanın.
// Set the focus to the edit text.
editText.requestFocus()
updateNickname
iş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_text
metin görünümünün arka plan rengini@color/colorAccent
olarak ayarlayın ve@dimen/small_padding
alt 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
Activity
iç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?
View
LinearLayout
TextView
Button
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?
visible
Invisible
gone
hide
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?
Button
görünümü, bir görünüm grubudur.- Ekran başına yalnızca üç
Button
görünüm olabilir. Button
gö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.