ANASAYFA | BLOG | SORU CEVAP | REFERANSLARIM | DOWNLOAD | HAKKIMDA | İLETİŞİM | ARAMA
ANDROİD EDİTTEXT - ONKEYLİSTENER()

Android uygulamalarımızda çok fazla kullandığımız edittext in kullanımına örnek bi uygulama üzerinden bakacağız. Diğer android form araçları gibi edittext i de öncelikle xml formatlı layout da tasarlayıp, ardından kod tarafında ilgili edittex için id ile ilişkilendirip işlemler yapacağız. İstersek belirli bir tuşa (Enter yada diğer herhangi bir tuşa) basıldığında kontrol edip uygulamamıza göre istediğimiz yere yada fonksiyona yönlendirecek, istersek de edittext in set i üzerinde okuma-yazma işlemleri yapacaz.

FK-gizle

Öncelikle görsel xml dosyamızı (layout) oluşturuyoruz ve edittext ekleyip id ataması yapıyoruz. Daha sonra bu id ile kod tarafında ilişki kurup ilgili edittext üzerinde işlemler yapacağız.

 

res\layout\edittextornek.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
   
    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <requestFocus />
    </EditText>
</LinearLayout>

 

Tasarım kısmını oluşturduk. Burda dikkat ettiyseniz Eidttext içerisinde <requestFocus /> kullandım. Bunun sebebi ilgili sayfa açıldığında direk bu edittext fokuslanacaktır. yani kullanıcı direk buraya yönlendirilmiş olacak. Şimdi de kod kısmına EdittextOrnek.java dosyamıza bakalım. zaten bütün işlem burada diyebiliriz

src\com\farukunal\ornekler\EdittextOrnek.java

package com.farukunal.ornekler;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.EditText;
import android.widget.Toast;
 
public class EdittextOrnek extends Activity {
 
    private EditText edittext;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.edittextornek);
        KeyListener();
    }
    
    public void ToastFK(String msj)
    {
        Toast.makeText(this, msj,
                Toast.LENGTH_SHORT).show();
        return;
    }
    
    public void KeyListener() {
        // id den edittext i kod kısmıyla ilişkilendirdik
        edittext = (EditText) findViewById(R.id.editText1);
 
        // edittext e keylistener ekliyoruz
        edittext.setOnKeyListener(new OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {
 
                // eğer Enter e bastıysa
                if ((event.getAction() == KeyEvent.ACTION_DOWN)
                        && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                    // girilen metni toast ile yazdırıyoruz
                    ToastFK(edittext.getText().toString());
                    return true;
                    
                } else if ((event.getAction() == KeyEvent.ACTION_DOWN)
                        && (keyCode == KeyEvent.KEYCODE_F)) {
                    // toast bilgilendirmesi
                    ToastFK("F harfine bastınız");
                    return true;
                    
                } else if ((event.getAction() == KeyEvent.ACTION_DOWN)
                        && (keyCode == KeyEvent.KEYCODE_K)) {
                    // toast bilgilendirmesi
                    ToastFK("K harfine bastınız");
                    return true;
                }
                else if(edittext.getText().toString().equals("aaa"))
                { //eğer imdat yazarsa text değişecek
                    edittext.setText("Faruk yardımmm");
                    return true;
                }
                
                return false;
            }
        });
    }
}

 

Kod kısmında görüldüğü gibi, istersek basılan harf üzerinde, istersek edittext deki metin üzerinde istediğimiz işlemi yapabiliriz. Ben burda toast kullandım ama siz istediğiniz şekilde kullanabilirsiniz. Bunun yanında getText() ile ilgili edittext nesnemizin text ine ulaşabilir, setText(String)  ile de yeni bir text ataması yapabiliriz. Yukarıdaki örnekte edittext e aaa yazdığımızda edittext in metni değişecek ve aaa silinip, yerine Faruk yardım yazacaktır. Aşağıdaki görsel örneklere de bakarak kodun daha iyi oturmasını sağlayabilirsiniz. Yine aynı şekilde Enter e basıldığında bütün metni Toast ile gösterecek, F yada K harfine basıldığında ise Toast ile bilgilendirme yapacağız. Bunların hepsi için görseller aşağıda mevcuttur

Öncelikle herhangi bir metin girip, Enter e basıyoruz

edit-text

 

 

Şimdi de F harfine bastığımızda aldığımız ekran görüntüsünü görelim

edit-text

 

 

 

Şimdi de K harfine bastığımızda aldığımız ekran görüntüsünü görelim

edit-text

 

 

 

Şimdi ise aaa yazıyoruz, ve metin değişip yerine Faruk yardımmm yazıyor

edit-text

 




Diğer Yazılarımdan Seçmeler...