Anasayfa Haber Android Programlama Ders 6: Kod İçerisinden View Nesneleriyle Çalışma

Android Programlama Ders 6: Kod İçerisinden View Nesneleriyle Çalışma

Bu derste kod içerisinde, ekrandaki View nesneleriyle çalışmayı ve  özelliklerini değiştirmeyi öğreneceğiz…

Ekrandaki View nesneleriyle kod içerisinden çalışmayı öğrenmek için önce bir proje oluşturalım:

  • Project name: P006-ViewById
  • Build Target: Android 4.2
  • Application name: ViewById
  • Package name: tr.androidApp.ViewById
  • Create Activity: MainActivity

Koddan ekran nesnesine ulaşmamız için onun ID’sine ihtiyacımız var. ID Properties ya da layout dosyalarında bu ID yazılıyor. Nereden bulacağınız size kalmış. ID’nin belirli bir formatı var: @+id/name; Burada “+” bunun yeni bir kaynak olduğunun işareti ve eğer artı işareti mevcut değilse R.java sınıfına eklenmesi gerektiğine işaret ediyor.

Main.xml’i açalım, TextView için ID = @+id/myText işaretleyelim ve kaydedelim

L_IdLayoutProp

R.java’yı açtığımızda id sınıfı için myText sabiti oluştuğunu görüyoruz. Yani ona ulaşmamız için R.id.myText yazmamız gerekiyor.

MyText

R.java TextView nesnesine bağlantılı ve nesneye program aracıyla ulaşmamız için R.java’yı kullanabiliriz. Bunun için bize findViewById yöntemi gerekecek. Bu yöntem View’u geri getiriyor. Bu yöntemin çağrısını yazalım. Şimdiye kadar kodumuzu onCreate yöntemiyle yazdığımızı hatırlatmak istiyorum. Bu yöntem etkileşim oluşturduğumuzda ortaya çıkıyor. Eğer nereye yazmanız gerektiğini anlamadıysanız dersin sonuna bakabilirsiniz.

MainActivity.java’yı açalım ve setContentView yöntemi çağrıştıran satırdan sonra aşağıdaki satırı yazalım:

View myTextView = findViewById(R.id.myText);

Eğer View alttan kırmızı ile çizilmişse, o zaman bu sınıf import bölümüne eklenmemiştir. İmpotun otomatik olarak yenilenmesi için CTRL+SHIFT+O tuşlarına aynı anda basmanız yeterli.

Şimdi myTextView TextView tipini aldı; findViewById yöntemin sonucunu View’dan, TextView’a değiştiriyoruz. Bundan sonra myTextView’a, TextView sınıfın yöntemlerini uygulayabiliriz. Örnek olarak setText yöntemini alalım. Şu anda görüntülenen metin şöyle “Hello World, MainActivity!” Biz bunu programlı olarak New text in TextView olarak değiştireceğiz

myTextView.setText(“New text in TextView”);

Kaydediyoruz, başlatıyoruz (CTRL+F11) böylece metnin değiştiğini görüyoruz

L_NewText

Ekrana düğme ekleyelim (Button), Id = @+id/myBtn, varsayılan metni bırakalım. Kaydediyoruz: CTRL+SHIFT+S zira eğer kaydetmezsek, R.java’da ID oluşturulmayacak.

Kodu yazıyoruz:

Button myBtn = (Button) findViewById(R.id.myBtn);

Buradaki nesne isminin ve ID’nin aynı olmasına dikkat ediyoruz, bu çok önemli.

Bunlar birbirini engellemiyor, ancak böyle yapmak ilerleyen derslerde bizim için çok daha yararlı ve mantıklı bir alışkanlık oluşturacaktır. Düğmeyi bulduk, şimdi ise onun metnini değiştirelim

myBtn.setText(“My button”);

Uygulamayı başlatalım. Düğme üzerindeki metin değişti, düğmeye birkaç defa tıklayabiliriz. Fakat hiç birşey olmayacak, çünkü biz hiçbir yerde düğme tıklandığında neyin olacağını belirtmedik. Bumu bir sonraki derste göreceğiz. Şimdilik düğmeyi pasif yapalım.

myBtn.setEnabled(false);

Enabled parametresini değiştirdik. Şimdi düğmeye tıklayamayız. Kaydedelim, tekrar başlatalım ve bunu görelim.

L_DisabledButton

CheckBox, id = @+id/myChb ekleyelim. Varsayılan ayarlarda işaret yoktur. İşareti programı kullanarak koyalım. Bunun için Checked parametresini değiştiren setChecked yöntemi kullanılıyor.

CheckBox myChb = (CheckBox) findViewById(R.id.myChb);

Uygulamayı başlatarak kodun işlediğini görebiliriz.

Gördüğünüz gibi pek de zor değil. ID’den herhangi bir View nesnesine uygun olan bir nesneyi elde etmek için findViewById yöntemini kullanıyoruz. Sonra ise gereken nesne yöntemlerin (setText, setEnabled, setChecked) oluşmasını sağlıyoruz.

Sonuçta böyle bir kod elde etmemiz gerekiyor:

package tr.androidApp.ViewById
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView myTextView = (TextView) findViewById(R.id.myText);
        myTextView.setText("New text in TextView");

        Button myBtn = (Button) findViewById(R.id.myBtn);
        myBtn.setText("My button");
        myBtn.setEnabled(false);

        CheckBox myChb = (CheckBox) findViewById(R.id.myChb);
        myChb.setChecked(true);
    }
}

 

Ders Sonu Notları:

Bu dersimizde sizlerle birlikte düğme oluşturmayı öğrendik. Disable ettiğimiz tıklanamayan bu düğmeyi, sonraki dersimizde nasıl tıklanabilir hale getireceğimiz ve de bu düğmeye bir görev bağlayarak işe yarar hale getirmeyi öğreneceğiz.

Android Programlamaya Giriş Ders 1: SDK Kurulumu ve Ayarları

Android Programlamaya Giriş Ders 2: AVD Kurulumu ve ilk Projenin Çalıştırılması

Android Programlamaya Giriş Ders 3: Ekranın Nesneleri ve Nesnelerin Özellikleri

Android Programlama Ders 4: Layout-dosya, XML Kodlama ve Ekranın Pozisyonu

Android Programlama Ders 5: Layout Çeşitleri

Android Programlama Ders 6: Kod İçerisinden View Nesneleriyle Çalışma