Bu dersimizde gridview örneğimize devam ediyoruz.
Gridview üyelerine tıkladığımızda ilgili bayrak resmi ve başlığını dialog olarak karşımıza çıkacak bir activity ile kullanıcıya göstericez.
Bu sayede hem dialog kullanmayı, hem activity’den activiye veri göndermeyi hem de gridview’ın onitemclicklistener methodunun kullanımını görmüş olacağız.
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 |
package emrealtunbilek.com.gridviewornek; import android.content.DialogInterface; import android.content.Intent; import android.media.Image; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { GridView liste; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); liste= (GridView) findViewById(R.id.gVBayrakListesi); EmreAdapter adapter=new EmreAdapter(this); liste.setAdapter(adapter); liste.setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent=new Intent(this, MyDialog.class); ViewYerTutucu tutucu= (ViewYerTutucu) view.getTag(); Ulke tiklanilanUlke= (Ulke) tutucu.ulkeResmi.getTag(); intent.putExtra("ulkeResmi", tiklanilanUlke.ulkeResmi); intent.putExtra("ulkeAdi", tiklanilanUlke.ulkeAdi); startActivity(intent); } } |
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 |
package emrealtunbilek.com.gridviewornek; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.TextView; public class MyDialog extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_dialog); Intent intent=getIntent(); if(intent!=null) { ImageView img= (ImageView) findViewById(R.id.iVDialogBayrakResmi); TextView text= (TextView) findViewById(R.id.tvDialogUlkeAdi); img.setImageResource(intent.getIntExtra("ulkeResmi", R.drawable.ulke1)); text.setText(intent.getStringExtra("ulkeAdi")); } } public void kapat(View v){ finish(); } } |
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 |
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_my_dialog" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="emrealtunbilek.com.gridviewornek.MyDialog"> <ImageView android:layout_width="550px" android:layout_height="275px" app:srcCompat="@drawable/ulke1" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:id="@+id/iVDialogBayrakResmi" /> <TextView android:text="Ülke 1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/iVDialogBayrakResmi" android:layout_centerHorizontal="true" android:layout_marginTop="15dp" android:id="@+id/tvDialogUlkeAdi" /> <Button android:text="KAPAT" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tvDialogUlkeAdi" android:layout_centerHorizontal="true" android:layout_marginTop="12dp" android:onClick="kapat" android:id="@+id/btnDialogKapat" /> </RelativeLayout> |
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; } } |