Android Telefon Yazılım Rom Destek Teknoloji Sitesi

Android Mobil Telefon Genel Bölüm => Android Genel Bölümü => Android Eğitim => Konuyu başlatan: Fuul oyun - 12 Nisan 2016, 03:42:15

Başlık: Android Programlama - Activity Geçişleri ve Veri Transferi
Gönderen: Fuul oyun - 12 Nisan 2016, 03:42:15

                        
Android'in yapısında sayfalama yapmak için Activity denilen yapılar kullanılmaktadır. Activityleri en basit şekilde içinde işlemler yaptığımız "sayfa" olarak tanımlayabiliriz. Android programlamada en temel kavramlardan biridir. Bir Activityden bir diğerine geçmeyi ve bir önceki activitydeki verileri yeni activitymize aktarmayı anlatacağım sizlere.
   
   İki adet Activitymiz olduğunu ve bunlarıda manifest dosyamızda tanımladığımızı varsayıyorum.
   
   1. Activitymiz (verilere değer atayacağımız activity) (bir adet button ekleyelim)
   
   
[Seç][/url]public class OrnekActivity extends Activity {
   
       private Intent intent;
      private Bundle bundle;
   
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.ornek_activity);
   
       intent = new Intent(OrnekActivity.this,VeriActivity.class);
       bundle = new Bundle();
       
       final Button GecisButonu = (Button)findViewById(R.id.button1);
   
       GecisButonu.setOnClickListener(new View.OnClickListener() {
            
            public void onClick(View v) {
               
            bundle.putString("key", "String deger");
            
            intent.putExtras(bundle);
            startActivity(intent);
   
            }
         });
   
   
       }
   
   @Override
     public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.ornek_activity, menu);
       return true;
     }
   }
   Şimdi 1.Activity içinde yazdığımız kodları bir inceleyelim.
   
   
[Seç][/url]private Intent intent;
   yukarıdaki intent olarak tanımladığım geçişimizi sağlayacak olan değişkendir.
   
   
[Seç][/url]private Bundle bundle;
   bundle olarak tanımladığımız değişken ise bizim aktarılacak verilerimizi tutan bir değişkendir.
   
   onCreate methodunda intentimize hangi activityden hangi activity geçeceğimizi belirtiyoruz aşağıda gördüğünüz şekilde.
   
   
[Seç][/url]intent = new Intent(OrnekActivity.this,VeriActivity.class);
   Sayfamıza eklediğimiz butonu ise GecisButonu ismini verdiğimiz bir button kontrolüne atıyoruz.
   
   
[Seç][/url] final Button GecisButonu = (Button)findViewById(R.id.button1);
   Şimdide butonumuz tıklandığı zaman yeni activitymizi nasıl başlatacağımıza ve verileri nasıl aktaracağımıza bakalım.
   
   
[Seç][/url]GecisButonu.setOnClickListener(new View.OnClickListener() {
            
            public void onClick(View v) {
               
            bundle.putString("key", "String deger");
            
            intent.putExtras(bundle);
            startActivity(intent);
   
            }
         });
   
   Verimizi aktarırken iki kavrama ihtiyacımız var. Birincisi aktardığımız veriye bizim belirleyeceğimiz bir key atamak. Bu key sayesinde 2.Activitymizden veriye ulaşabileceğiz. İkincisi ise verimizin alacağı string değer. Bunları el ile vermek yerine sabit tanımlayacağınız ya da dinamik olarak değişecek string değişkenlerle de verebilirsiniz.
   
   startActivity komutu ile yukarıda belirlediğimiz intente göre yönlendirme yapıyoruz ve artık 2.Activitymize geçebiliriz.
   
   
   
[Seç][/url]public class VeriActivity extends Activity {
   
   private Bundle veriler;
   
   private String aktarilanVeri;
   
   @Override
     public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.veri_activity);
       
       
       veriler = getIntent().getExtras();
       
       aktarilanVeri = veriler.getString("key");
   
     }
   
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.activity_veri_activity, menu);
       return true;
     }
   
   
   
   }
   Şimdi verimizi nasıl aldığımızı açıklayayım.
   Diğer activityden verimizi bundle yardımıyla göndermiştik. Bu sayfadan da yine bundle yardımıyla alacağız. Bu yüzden "veriler" isminde bir bundle tanımlıyorum.
   
   
[Seç][/url]private Bundle veriler;
   Aldığımız veriyi tutacak bir de string değişkene ihtiyacımız olacak. Bunuda "aktarilanVeri" isminde bir String olarak tanımlıyorum.
   
   
[Seç][/url]private String aktarilanVeri;
   Bundle yardımıyla verimizi nasıl çekeceğimize bakalım
   
   
[Seç][/url]veriler = getIntent().getExtras();
   Artık veriler elimizde, şimdi yapmamız gereken önceki Activity de belirlemiş olduğumuz key ile verimizi atamak.
   
   
[Seç][/url]aktarilanVeri = veriler.getString("key");
   Evet verimizi bir activityden başka bir activitye başarılı bir şekilde aktarmış olduk. Bu string ifadeyi istediğiniz her yerde kullanabilirsiniz.
   
   Yazı tamamen bana aittir lütfen paylaşırken kaynak belirtiniz.
   
   Kaynak: http://blog.melihmucuk.com/android-programlama-activity-gecisleri-ve-veri-transferi/ (http://blog.melihmucuk.com/android-programlama-activity-gecisleri-ve-veri-transferi/)
                     
                  
                  
EhPortal 1.39.6 © 2025, WebDev