Android Programlama: EditText Kullanarak Kullanıcıdan Girdi Almak
Uygulama geliştirirken en sık kullanılan komponentlerden biri metin kutularıdır. Bu kontroller sayesinden kullanıcıdan bilgiler alabiliriz. Kullanıcılar ile iletişim kurmanın en kolay ve sağlıklı yollarından biridir. Bir giriş formu tasarlıyorsak kullanıcın adı, soyadı, şifresi gibi bilgileri bu kontroller ile alabilir ve istediğimiz şekilde kaydedebiliriz. Metin kutuları Android programlamada EditText kontrolü ile yaratılır. Şimdi onu nasıl kendi programımızda kullanabileceğimize bakalım.
Bu kodu xml dosyanıza yazdıktan sonra yatay olarak ekrana yayılan basit bir metin kutusu elde etmiş olursunuz. Şimdi onu biraz daha özelleştirelim.
Şimdi bu özellikleri inceleyelim.
id: Metin kutusuna bir ID vererek daha sonra arkaplan kodu ile ulaşabilmeyi sağlamış olduk.
layout_width: Bu özelliği "match_parent" olarak ayarladık ki metin kutusu yatay olarak ekrana yayılsın.
layout_height: Bu özelliği "wrap_content" olarak ayarlamak onun sadece içinde yazan metni sığdıracak kadar uzamasını sağlar.
layout_margin: Margin, kontrollerin kenarlarında ne kadar pay olacağını belirtir. 16dp ayarlayarak ekranın kenarlarından bu değer kadar uzaklaşmasını sağlamış olduk.
hint: Kullanıcı kutuya herhangi bir şey girene kadar bir metin görüntülemenizi sağlar. Kullanıcıyı burada kutuya ne yazacağı konusunda yönlendirebilirsiniz.
textSize: Yazı boyutu ne kadar olsun?
textColor: Kullanıcının gireceği yazının rengi ne olsun. Bu rengi Hex cinsinden vermeniz gerekiyor, neyse ki Android Studio rengi paletten seçmenize olanak tanıyor.
Bu örnekte kullanmamış olsak da EditText pek çok kullanışlı özelliğe sahiptir. .
Şimdi bu metin kutusunu bir örnekle nasıl arkaplan kodu ile kontrol edebileceğimize bir göz atalım. Aynı layout dosyasına bir buton daha ekliyoruz.
Layout Manager olarak RelativeLayout kullandığımıza dikkat edin. Bunun sebebi butonda layout_below:"@id/metinKutusu" olarak belirtip, butonun kutunun hemen altında gösterilmesini sağlamaktır.
Elde ettiğimiz yeni görünüme bir bakalım:
Sadece bir Giriş butonu yaratmış olduk. İşimizin kalanını arkaplan kodu ile gerçekleştireceğiz.
Ardından ID verdiğimiz kontrollere kod üzerinden erişmemizi sağlayacak referansları yaratıyoruz.
Butonumuza bir onClick olay dinleyicisi ekleyerek dokunulduğunda fonksiyon içindeki kodları çalıştırmasını istiyoruz.
Butona dokunulduğunda metin kutusuna girilen ismi bir değişkende kaydedip, başına "Hoşgeldiniz" ifadesini ekleyerek yeniden aynı metin kutusuna yazdırıyoruz.
Metin Kutusunu Tasarıma Yerleştirmek
Bir proje yarattıktan sonra, EditText kontrolünü tasarımınızda uygun bir yere koyarak yada direk aşağıdaki kodu layout dosyanıza yazarak kontrolü kullanabilirsiniz.
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" />
Bu kodu xml dosyanıza yazdıktan sonra yatay olarak ekrana yayılan basit bir metin kutusu elde etmiş olursunuz. Şimdi onu biraz daha özelleştirelim.
<EditText android:id="@+id/metinKutusu" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:hint="Adınızı buraya girin" android:textSize="21sp" android:textColor="#3b87c6" />
Şimdi bu özellikleri inceleyelim.
id: Metin kutusuna bir ID vererek daha sonra arkaplan kodu ile ulaşabilmeyi sağlamış olduk.
layout_width: Bu özelliği "match_parent" olarak ayarladık ki metin kutusu yatay olarak ekrana yayılsın.
layout_height: Bu özelliği "wrap_content" olarak ayarlamak onun sadece içinde yazan metni sığdıracak kadar uzamasını sağlar.
layout_margin: Margin, kontrollerin kenarlarında ne kadar pay olacağını belirtir. 16dp ayarlayarak ekranın kenarlarından bu değer kadar uzaklaşmasını sağlamış olduk.
hint: Kullanıcı kutuya herhangi bir şey girene kadar bir metin görüntülemenizi sağlar. Kullanıcıyı burada kutuya ne yazacağı konusunda yönlendirebilirsiniz.
textSize: Yazı boyutu ne kadar olsun?
textColor: Kullanıcının gireceği yazının rengi ne olsun. Bu rengi Hex cinsinden vermeniz gerekiyor, neyse ki Android Studio rengi paletten seçmenize olanak tanıyor.
Bu örnekte kullanmamış olsak da EditText pek çok kullanışlı özelliğe sahiptir. .
Sonuç
Şimdi bu metin kutusunu bir örnekle nasıl arkaplan kodu ile kontrol edebileceğimize bir göz atalım. Aynı layout dosyasına bir buton daha ekliyoruz.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.androiduygulamam1.MainActivity"> <EditText android:id="@+id/metinKutusu" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:hint="Adınızı buraya girin" android:textColor="#3b87c6" android:textSize="21sp" /> <Button android:id="@+id/buton" android:layout_margin="12dp" android:layout_width="match_parent" android:layout_below="@id/metinKutusu" android:layout_height="wrap_content" android:text="Giriş" /> </RelativeLayout>
Layout Manager olarak RelativeLayout kullandığımıza dikkat edin. Bunun sebebi butonda layout_below:"@id/metinKutusu" olarak belirtip, butonun kutunun hemen altında gösterilmesini sağlamaktır.
Elde ettiğimiz yeni görünüme bir bakalım:
Sadece bir Giriş butonu yaratmış olduk. İşimizin kalanını arkaplan kodu ile gerçekleştireceğiz.
Arkaplan Kodu
Kullanacağımız kontrolleri import ediyoruz.
import android.widget.Button; import android.widget.EditText;
Ardından ID verdiğimiz kontrollere kod üzerinden erişmemizi sağlayacak referansları yaratıyoruz.
Button buton = findViewById(R.id.buton); final EditText metinKutusu = findViewById(R.id.metinKutusu);
Butonumuza bir onClick olay dinleyicisi ekleyerek dokunulduğunda fonksiyon içindeki kodları çalıştırmasını istiyoruz.
buton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String girilenAd = metinKutusu.getText().toString(); metinKutusu.setText("Hoşgeldiniz, " + girilenAd); } });
Butona dokunulduğunda metin kutusuna girilen ismi bir değişkende kaydedip, başına "Hoşgeldiniz" ifadesini ekleyerek yeniden aynı metin kutusuna yazdırıyoruz.
Kodun Tamamı (MainActivity.java)
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button buton = findViewById(R.id.buton); final EditText metinKutusu = findViewById(R.id.metinKutusu); buton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String girilenAd = metinKutusu.getText().toString(); metinKutusu.setText("Hoşgeldiniz, " + girilenAd); } }); } }
Yorumlar
Yorum Gönder
Sitemize herkes yorum yapabilir. Eğer kayıt olmadan yorum yapmak istiyorsanız, listeden 'Anonim'i seçin.