#5 – Android Layouts: Grid View
Merhaba, bu yazımda GridView layoutu anlatacağım. Yazıda anlatılan uygulama örneğine ait kodları aşağıdaki linkten indirebilirsiniz.
[wpdm_file id=11]Grid View
GridView bir gösterim grubudur. Grid View elemanları iki boyutlu kaydırılabilir bir şablonda gösterir. İki boyuttan kastım şablonumuzda hem satır hem sütunlar olmasıdır. Elemanlar ListAdapter(Liste Adaptörü- ne olduğunu anlatacağım sabırlı olun ) kullanılarak GridView e otomatik olarak eklenir.
ListAdapter ise bir liste objesi ile listedeki elemanlar arasındaki bağlantıyı kuran yapıdır. Örneğimizle daha iyi anlayacaksınız. Şimdi Grid View ve ListAdapter ı öğrendiğimize göre örneğimize geçelim.
Gerekli adımlar:
1. Yeni bir proje oluşturup adına Layouts veya istediğiniz herhangi birşey diyebilirsiniz. (Not isim büyük harf ile başlamalı, yoksa hata verir eclipse.)
2. res/layout altındaki xml dosyasına aşağıdaki kodu yazın.
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnWidth="90dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:background="#ddd" android:gravity="center" />
3. src klasörü altındaki uygulama paketinizin altındaki .java dosyasına aşağıdaki kodları yazın.
package com.androidhocam.layouts;import android.app.Activity; import android.os.Bundle; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.GridView; import android.widget.TextView; import android.widget.Toast; import android.view.View; import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity {GridView gridView;static final String[] numbers = new String[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);gridView = (GridView) findViewById(R.id.gridview); ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, numbers); gridView.setAdapter(adapter); gridView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(getApplicationContext(), ((TextView) v).getText(), Toast.LENGTH_SHORT).show(); } }); } }
Adımlarımız bu kadar gözden geçirirsek; önce projemizi oluşturduk, sonra uygulamanın arayüzünü daha sonra da asıl işi yapacak olan java kodlarımızı ekledik. Şimdi projemize sağ tıklayıp Run as -> Android Application sekmelerini takip edip projemizi test etmek için çalıştırıyoruz.
GridView Emülatör Çıktısı:
Android Evreni’ nin bir yazısının daha sonuna geldik, bütün Android Evreni ziyaretçilerine yararlı olmasını umarım.
Kolay gelsin
Elinize Sağlık Çok Güze Bir Anlatım oldu.
mustafa bey, tel numaranı mail adresime atarmısın. Önemli…
Merhaba,
Hocam kusura bakmayın verdiğiniz örneklerde hep hataları arıyormuşum veya hataları düzeltiyormuşum gibi oluyor ama, ben verdiğiniz örnekleri bire bir yazarak veya kopyalayarak uygulamaya çalışıyorum. Bu sırada da haliyle çalışmayıp hatalar veriyor ve bunları gidermeye çalışıyorum.
Bu örnekte de
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
satırı ve altındaki grupta da birkaç hata aldım. Hatanın da AdapterView<?> yerine AdapterView yazarak düzeltilebileceğini ve bu şekilde çalışacağını belirtmek istiyorum.
Yaptıklarınız için de müteşekkirim. Böylece beni de araştırmaya sevk etmiş oluyorsunuz.
merhaba,
yazdığım örnekler kesinlikle test edildikten sonra yayınlanıyor. Test etmeden yazdığım herhangi bir örneği herhangi bir yazımda kullanmamışımdır.
İyi Çalışmalar.
Bu anlattığınız örneği de her bir gridview de resim nasıl gösterebileceğim konusunda da yardım istiyorum sizden.
merhaba,
konu hakkında ders yayınlanacak.
İyi Çalışmalar.
Merhaba;
Gridview de butonlarin boyutları hep aynımı oluyor, mesela bir hesap makinesinde eşit butonunu yatay olarak daha uzun yapmak istiyorum boyle birşey mümkünmü?