Bu derste gridview’ın optimizasyon işlemlerini yapıyoruz.
Listview örneğinde yaptığımız işlemlerin aynısını gridview için kullandığımız adapter sınıfında uygulayıp, gridview’ın daha etkili bir şekilde çalışmasını sağlıyoruz.
Bu uygulamayı indirmek ve tüm kaynaklara ulaşmak için tıklayın…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
package emrealtunbilek.com.gridviewornek; import android.content.Context; import android.content.res.Resources; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import java.util.ArrayList; class Ulke { int ulkeResmi; String ulkeAdi; Ulke(int resim, String ad) { this.ulkeResmi = resim; this.ulkeAdi = ad; } } class ViewYerTutucu { ImageView ulkeResmi; ViewYerTutucu(View view) { ulkeResmi = (ImageView) view.findViewById(R.id.imageView); } } public class EmreAdapter extends BaseAdapter { ArrayList<Ulke> tumUlkeler; Context context; EmreAdapter(Context c) { this.context = c; tumUlkeler = new ArrayList<Ulke>(); Resources kaynak = c.getResources(); String[] ulkeAdlari = kaynak.getStringArray(R.array.ulkeAdlari); int[] bayrakResimleri = {R.drawable.ulke1, R.drawable.ulke2, R.drawable.ulke3, R.drawable.ulke4, R.drawable.ulke5, R.drawable.ulke6, R.drawable.ulke7, R.drawable.ulke8, R.drawable.ulke9, R.drawable.ulke10, R.drawable.ulke10, R.drawable.ulke11, R.drawable.ulke12, R.drawable.ulke13, R.drawable.ulke14, R.drawable.ulke15, R.drawable.ulke16, R.drawable.ulke17, R.drawable.ulke18, R.drawable.ulke19, R.drawable.ulke20}; for (int i = 0; i < 20; i++) { /*Ulke geciciUlke=new Ulke(); geciciUlke.ulkeAdi=ulkeAdlari[i]; geciciUlke.ulkeResmi=bayrakResimleri[i]; */ Ulke gecici = new Ulke(bayrakResimleri[i], ulkeAdlari[i]); tumUlkeler.add(gecici); } } @Override public int getCount() { return tumUlkeler.size(); } @Override public Object getItem(int position) { return tumUlkeler.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View teksatir = convertView; ViewYerTutucu tutucu; if (teksatir == null) { LayoutInflater inf = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); teksatir = inf.inflate(R.layout.tek_satir, parent, false); tutucu = new ViewYerTutucu(teksatir); teksatir.setTag(tutucu); } else { tutucu = (ViewYerTutucu) teksatir.getTag(); } Ulke gecici=tumUlkeler.get(position); tutucu.ulkeResmi.setImageResource(gecici.ulkeResmi); tutucu.ulkeResmi.setTag(gecici); return teksatir; } } |