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.
Ö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"
?>
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
Şimdi de F harfine bastığımızda aldığımız ekran görüntüsünü görelim
Şimdi de K harfine bastığımızda aldığımız ekran görüntüsünü görelim
Şimdi ise aaa yazıyoruz, ve metin değişip yerine Faruk yardımmm yazıyor