Android Programlama Ders 15: Çalışan Uygulama Ekranında View-nesnelerinin Oluşumu - Technopat
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Nasıl Yapılır
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Nasıl Yapılır
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net

Anasayfa - Makale - Pratik - Android Programlama Ders 15: Çalışan Uygulama Ekranında View-nesnelerinin Oluşumu

Android Programlama Ders 15: Çalışan Uygulama Ekranında View-nesnelerinin Oluşumu

19 Temmuz 2013 - 18:30
- Mobil, Pratik

Android Programlama Ders 15’te uygulama çalıştığı zaman ekrana bileşenleri eklemeyi öğreneceğiz…

Geçen dersteki uygulamada bileşenleri Activity.onCreate metodunda oluşturuyorduk. Bu derste ise çalışan uygulamada bileşenleri oluşturmayı öğreneceğiz. Örnek olarak butonları kullanacağız. Butonların metnini ve ekrandaki pozisyonunu değiştireceğiz. Ardından oluşturacağımız nesneyi silmek için ekranına silme butonu ekleyeceğiz.

Projeyi oluşturalım:

Project name: P0015_DynamicLayout2
Build Target: Android 4.2
Application name: DynamicLayout2
Package name: tr.androidApp.dynamicLayout2
Create Activity: MainActivity

Ekranı oluşturalım. Main.xml açıyoruz ve aşağıdaki kodu yazıyoruz.

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”>
<RadioGroup
android:layout_height=”wrap_content”
android:layout_width=”match_parent”
android:orientation=”horizontal”
android:id=”@+id/rgGravity”>
<RadioButton
android:layout_height=”wrap_content”
android:layout_width=”wrap_content”
android:checked=”true”
android:text=”Left”
android:id=”@+id/rbLeft”>
</RadioButton>
<RadioButton
android:layout_height=”wrap_content”
android:layout_width=”wrap_content”
android:text=”Center”
android:id=”@+id/rbCenter”>
</RadioButton>
<RadioButton
android:layout_height=”wrap_content”
android:layout_width=”wrap_content”
android:text=”Right”
android:id=”@+id/rbRight”>
</RadioButton>
</RadioGroup>
<LinearLayout
android:id=”@+id/linearLayout1″
android:layout_width=”match_parent”
android:orientation=”horizontal”
android:layout_height=”wrap_content”>
<EditText
android:layout_height=”wrap_content”
android:layout_width=”wrap_content”
android:layout_weight=”1″
android:id=”@+id/etName”
android:fadeScrollbars=”true”>
</EditText>
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Create”
android:id=”@+id/btnCreate”>
</Button>
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Clear”
android:id=”@+id/btnClear”>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:id=”@+id/llMain”
android:orientation=”vertical”>
</LinearLayout>
</LinearLayout>

 

Ekranı ayrıntılı bir şekilde inceleyelim.

rgGravity –  RadioGroup üç tane RadioButton (rbLeft, rbCenter, rbRight) içeriyor. Bu bileşenleri nesnenin pozisyonunu belirlemek için kullanacağız.

etName –  bileşeni nesnenin metnini belirleyecek.

btnCreate –  butonu nesnenin oluşması için kullanılacak.

btnClear –  butonu oluşturduğumuz nesneleri silme imkanı sunacak.

llMain – dikey LinearLayout’da bileşenlerin oluşturduğu yerdir.

dynamic_layout2

Ekranı hazırladıktan sonra bileşenleri aktif hale getirelim. Bunu yapmak için MainActivity.java dosyasında aşağıda yazdığım kodu yazacaksınız. İlk başta tüm bileşenleri buluyoruz, sonra butonlar için işleticiyi oluşturuyoruz. İşleticinin fonksiyonu Activity (Yani implements OnClickListener eklememiz gerekecektir) gerçekleştirecek. Ve son kod satırlarda içerisi boş  olan onClick işleticisini oluşturuyoruz.

public class MainActivity extends Activity implements OnClickListener{

LinearLayout llMain;
RadioGroup rgGravity;
EditText etName;
Button btnCreate;
Button btnClear;

int wrapContent = LinearLayout.LayoutParams.WRAP_CONTENT;

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

llMain = (LinearLayout) findViewById(R.id.llMain);
rgGravity = (RadioGroup) findViewById(R.id.rgGravity);
etName = (EditText) findViewById(R.id.etName);

btnCreate = (Button) findViewById(R.id.btnCreate);
btnCreate.setOnClickListener(this);

btnClear = (Button) findViewById(R.id.btnClear);
btnClear.setOnClickListener(this);
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

}
}

Yukarıdaki koda dikkat ettiyseniz wrapContent değişkeni oluşturdum. Değişkenin amacı LinearLayout.LayoutParams.WRAP_CONTENT’ın değerini saklamak.

Şimdi butonu oluşturalım ve onClick metodu aktif haline getirelim.

@Override
  public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btnCreate:
      // LayoutParams’in olusturulmasi
      LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(
          wrapContent, wrapContent);
      // btnGravity Gravity.LEFT’nin degerini sakliyor
      int btnGravity = Gravity.LEFT;
      // hangi RadioButton secildigini belirliyor 
      switch (rgGravity.getCheckedRadioButtonId()) {
      case R.id.rbLeft:
        btnGravity = Gravity.LEFT;
        break;
      case R.id.rbCenter:
        btnGravity = Gravity.CENTER_HORIZONTAL;
        break;
      case R.id.rbRight:
        btnGravity = Gravity.RIGHT;
        break;
      }
           lParams.gravity = btnGravity;

      // Button’u olusturuyoruz, metnini giriyoruz ve LinearLayout’a                ekliyoruz
      Button btnNew = new Button(this);
      btnNew.setText(etName.getText().toString());
      llMain.addView(btnNew, lParams);

      break;
    }

 

Şimdi yazdığımız kodu detaylı bir şekilde inceleyelim. İlk başta btnCreate’e basıp basılmadığını kontrol ediyoruz. Sonra yüksekliğine ve genişliğine göre LayoutParams’ı oluşturuyoruz.

LEFT değeri kaydetmek için btnGravity değişkeni oluşturuyoruz. Şimdiki hangi RadioButton seçildiğini öğrenmek için getCheckedRadioButtonId metodunu kullanacağız. Bu metod RadioGroup için seçildiği RadioButton’un ID’ni geri gönderiyor. Fonksiyon bu ID’yi kontrol ediyor ve değeri btnGravity değişkenine kaydediyor. Gravity’nin değeri LayoutParams’a gönderiliyor.

Sonra butonu oluşturuyoruz ve etName değişkenden butonun metnini kaydediyoruz. Son aşamada oluşturduğumuz butonu (Button) LinearLayout’a ekliyoruz.

Projeyi kaydedelim ve uygulamayı çalıştıralım. Birkaç tane butonu oluşturalım.

dynamicLayout Butonlar

 

Butonlar yaptığımız seçeneklere göre ekranda pozisyon almalı.

Şimdi Clear butonunu etkileştirelim. Clear butonu oluşturduğumuz tüm nesneleri silecek. Bunu yapmak için onClick metodunu tamamlayalım. Switch fonksiyonuna (v.getId()) bir tane daha case (Durum)  ekleyelim:

    case R.id.btnClear:
      llMain.removeAllViews();
      Toast.makeText(this, "Silindi", Toast.LENGTH_SHORT).show();
      break;

 

removeAllViews metodu LinearLayout’tan tüm alt View-nesnelerini silecek. Toast metodu ekrana  başarılı işlem tamamlanmış mesajı gönderecek. Kaydedelim, çalıştıralım ve programı kontrol edelim. Birkaç tane buton ekleyelim, Clear butonuna basalım ve sonucu görelim.

dynamicLayout Silindi

 

Sonunda bir esnek uygulamayı yaratmış olduk.

Uygulamanın tam kodu:

public class MainActivity extends Activity implements OnClickListener {

  LinearLayout llMain;
  RadioGroup rgGravity;
  EditText etName;
  Button btnCreate;
  Button btnClear;

  int wrapContent = LinearLayout.LayoutParams.WRAP_CONTENT;

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

    llMain = (LinearLayout) findViewById(R.id.llMain);
    rgGravity = (RadioGroup) findViewById(R.id.rgGravity);
    etName = (EditText) findViewById(R.id.etName);

    btnCreate = (Button) findViewById(R.id.btnCreate);
    btnCreate.setOnClickListener(this);

    btnClear = (Button) findViewById(R.id.btnClear);
    btnClear.setOnClickListener(this);
  }

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btnCreate:
      // LayoutParams’in olusturmasi
      LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(
          wrapContent, wrapContent);
      // btnGravity Gravity.LEFT’nin degeri sakliyor
           int btnGravity = Gravity.LEFT;
      // hangi RadioButton secildigini belirliyor
      // btnGravity’ye kaydediyoruz
      switch (rgGravity.getCheckedRadioButtonId()) {
      case R.id.rbLeft:
        btnGravity = Gravity.LEFT;
        break;
      case R.id.rbCenter:
        btnGravity = Gravity.CENTER_HORIZONTAL;
        break;
      case R.id.rbRight:
        btnGravity = Gravity.RIGHT;
        break;
      }
      //olustugu degeri LayoutParams’a kaydediyoruz
      lParams.gravity = btnGravity;

      // Button’u olusturuyoruz metnini giriyoruz ve LinearLayout’a ekliyoruz
      Button btnNew = new Button(this);
      btnNew.setText(etName.getText().toString());
      llMain.addView(btnNew, lParams);

      break;

    case R.id.btnClear:
      llMain.removeAllViews();
      Toast.makeText(this, "Silindi", Toast.LENGTH_SHORT).show();
      break;

    }
  }

}

 

Android Programlama derslerinde gelecek konumuzda ekranda var olan nesnelerin  layout-parametrelerini değiştiriyoruz.

Etiketler: AndroidAndroid programlamabtnClearbtnCreatebtnGravityetNameIlMainMainActivity.javanesneonClick metoduRadioButtonrGravityuygulama ekranıViewwrapContent
Paylaş6PaylaşTweetYollaPaylaş
Victor Cuiumju

Victor Cuiumju

Yorum Yap Yanıtı iptal et

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

RSS Technopat Sosyal

  • 10 bin TL'ye 2K monitör önerisi
  • ASUS TUF GAMING F15 FX607VJ-RL033 nasıldır?
  • İthalatçı Garantili PS5 Pro alınır mı?
  • 5000 TL monitör önerisi
  • Trendyol Go Chippin üzerinden 450/250TL kupon kodu almak
  • Hakemlik için saat önerisi
  • Honor Pad 10 vs Xiaomi Pad 7
  • 11. sınıf biyoloji en kolay konular hangileridir?
  • Herkes Masaüstü Wallpaper'ını paylaşsın
  • Azerbaycan için Steam'de indirme bölgesi nasıl seçilmeli?

Technopat Video

Şu an oynayan

iOS 26.1 hangi yenilikleri getirdi?

iOS 26.1 hangi yenilikleri getirdi?

iOS 26.1 hangi yenilikleri getirdi?

Haber
Kriz kapıda! RAM ve SSD fiyatlarına büyük zam

Kriz kapıda! RAM ve SSD fiyatlarına büyük zam

Haber
Türkiye’nin konuşulmayan gerçeği: Operatör kazığı mı yiyoruz?

Türkiye’nin konuşulmayan gerçeği: Operatör kazığı mı yiyoruz?

Haber

Teknoloji tutkunu Technopatların ortak adresi: Technopat.net!

Güncel teknoloji, internet, donanım, yazılım, oyun ve daha fazlası haber, makale ve videolar ile Technopat’ta sizlerle.


01010100 01100101 01100011 01101000 01101110 01101111 01110000 01100001 01110100

Kategoriler

  • Yapay Zeka
  • Ev Teknolojileri
  • Makale
  • Video

Sosyal Medya

Bağlantılar

  • Hakkında
  • Haber
  • Video
  • Sosyal
  • Çerez Politikası
© 2011-2025 Technopat. Tüm Hakları Saklıdır.
Netse
Çerez Onayı
Web sitemizi ziyaret ettiğinizde, kullanıcı deneyiminizi daha iyi hale getirmek, hizmetlerimizi size daha etkin bir şekilde sunabilmek için çerezler (cookies) ve benzeri araçlar kullanıyoruz. Çerezler, internet sitesinin düzgün çalışmasını sağlamak, içeriği kişiselleştirmek, sosyal medya özellikleri sağlamak ve trafik analizi yapmak için kullanılan küçük metin dosyalarıdır. Çerezleri nasıl kullandığımız ve kişisel verilerinizi nasıl işlediğimiz hakkında daha fazla bilgi almak için çerez politikamızı ve kişisel veri politikamızı inceleyebilirsiniz.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, sadece kullanıcının açıkça talep ettiği belirli bir hizmetin kullanılmasını sağlama amacıyla veya iletişimin elektronik iletişim ağı üzerinden iletilmesinin tek amacıyla yasal olarak kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından istenmeyen tercihlerin depolanması yasal amacıyla gereklidir.
İstatistikler
Sadece istatistiksel amaçlarla kullanılan teknik depolama veya erişim. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Pazarlama
Teknik depolama veya erişim, reklam gönderimi için kullanıcı profilleri oluşturmak veya kullanıcıyı bir web sitesinde veya birden fazla web sitesinde benzer pazarlama amaçları için takip etmek amacıyla gereklidir.
  • Seçenekleri yönet
  • Hizmetleri yönetin
  • {vendor_count} satıcılarını yönetin
  • Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri yönet
  • {title}
  • {title}
  • {title}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Nasıl Yapılır
  • Yapay Zeka
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

© 2025 Technopat
Sorularınız için Technopat Sosyal