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.

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);
            }
        });
    }
}

Programı çalıştıralım

Kullanıcı metin kutusuna ismini yazıp butona dokunduktan sonra isminin başına "hoşgeldiniz" yazacaktır.

Resmi büyütmek için üstüne tıklayın.

Yorumlar



Bu blogdaki popüler yayınlar

C# LAN üzerinde TCP Bağlantısı ile Veri Aktarımı (Konsol)

Bilgisayarınızın IP adresini nasıl öğrenirsiniz?

İşletim Sistemleri Türleri (Single Task, Multitask ve RTOS)

Ağ Topolojileri nelerdir? Hangi topoloji bir ağ için daha uygun?