Bu yazıda temel anlamda bir view işlemi yapacağız. Temel olmasına karşın hem saf Java kodu hem de Java + XML kodlarını beraber içeren bir örnek olacak. Örneğimizde butona tıklandıkça güncel sistem saat ve tarihi butonun text özelliği olarak ayarlanmaktadır. İlk olarak sadece Java kodu kullanılarak örneğimizi uygulayalım.

package com.farukbozan.android;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;public class MainActivity extends Activity implements OnClickListener
{private DateFormat df = null;
private Button btn = null;

@Override
public void onCreate(Bundle savedInstanceState)
{
df = new SimpleDateFormat(“hh:mm:ss dd/MM/yyyy”);
super.onCreate(savedInstanceState);
initBtn();
setContentView(btn);
}

private void initBtn()
{
btn = new Button(this);
btn.setText(“Click to update time”);
btn.setOnClickListener(this);
}

private void updateTime()
{
btn.setText(df.format(new Date(System.currentTimeMillis())));
}

public void onClick(View arg0)
{
updateTime();
}

}

Tarihi formatlamak için DateFormat sınıfından bir örnek oluşturduk ve tarih şablonunu parametre olarak verdik. Daha sonra butonumuzu oluşturup çeşitli özelliklerini ayarladık. Click olayında gerçekleşecek update işlemini de ayrı metot olarak yazdık. Şimdi aynı örneğe bir de XML yardımı ile bakalım. Aşağıdaki ekran görüntüsü view için gerekli olan main.xml dosyasının içeriğini göstermektedir.

Oldukça kolay bir şekilde anlaşılacağı gibi butonumuz xml yoluyla oluşturduk ve çeşitli özelliklerini tanımladık. Sıra geldi xml dosyasındaki butona Java kodu ile ulaşıp işlem yapmaya.

package com.farukbozan.android;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;public class MainActivity extends Activity implements OnClickListener
{private DateFormat df = null;
private Button btn = null;@Override
public void onCreate(Bundle savedInstanceState)
{
df = new SimpleDateFormat(“hh:mm:ss dd/MM/yyyy”);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initBtn();
}

private void initBtn()
{
btn = (Button)findViewById(R.id.button);
btn.setOnClickListener(this);
}

private void updateTime()
{
btn.setText(df.format(new Date(System.currentTimeMillis())));
}

public void onClick(View arg0)
{
updateTime();
}

}

Xml yoluyla oluşturduğumuz kodlarda bazı değişiklikler var. Hemen bakalım. Öncelikle setContentView metodu farklı bir parametre aldı. Daha önce butonun kendisini parametre olarak göndermişken şimdi dinamik olarak oluşturulan R sınıfı üzerinden ulaşıyoruz. Ayrıca setContentView metodu üste taşındı. initBtn metounda ise bazı satırlar çıkartılıp yerine yine R sınıfı üzerinden id aracılığı ile xml dosyasında belirttiğimiz id değeri üzerinden butona ulaşıyoruz. Her iki kodun çalışması aynı sonucu veriyor.

Aslında her iki yöntemin kendine göre iyi ve zayıf yönleri var. Özellikle benim gibi her işi Java kodu ile halletmeye çalışanlar için XML ilk başta biraz itici gelebilir ama aslında oldukça kullanışlı. Ben bile alıştığıma göre 😀 :D.

Bol Java’ lı günler dileğiyle…

Categories:

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir