INTENT NEDİR? Android Studioda Kullanımı?

Android uygulama bileşenleri, diğer Android uygulamalarına bağlanabilir. Yapacağımız uygulamanın yapısına göre farklı aktivite sınıfları oluşturup, intent’ler aracılığı ile bunlar arasında geçiş yaparız. Android işletim sisteminde, bir Activitynin birbirlerini çağırmasını ve iletişime geçebilmesi için ortak bir yapı oluşturmuştur. Bu uygulama bileşenleri arasındaki veri alışverişini sağlayan ortak yapıya haberleşme nesnesi yani Intent denir. Nesne olmasının sebebi Intent sınıfından üretilerek kullanılmasından dolayıdır.

Kısaca Intent ‘i Activityler arasında veri transferi için kullanırız.

Intent’ler ile başka kategoride uygulamalarda çalıştırılması istenebilir, mesela uygulamanızda bir web sitesini görüntülemek istiyorsanız, bir web tarayıcı yazmak zorunda değilsiniz. Siz web tarayıcı açmak istediğinizi söylersiniz, gerekli bilgileri verirsiniz, Android uygun olan programı açar, eğer birden fazla seçenek var ise kullanıcıya sorar.

 Soru: Birden fazla Activity nasıl yapılır? Yani 2.Activity nasıl açılır, nasıl geçiş yapılır? Şimdi basit bir örnekle bunu açıklamaya çalışacağım.

Öncelikle yeni bir proje açalım. MainActivity olsun. Design kısmından ekranımıza buton, textView, EditText ekleyelim.

Biz bu butona bastığımızda yeni bir ekrana geçiş yapmak istiyoruz. Nasıl yapacağız?

Android Studio’nun sol tarafındaki java classlarının oraya gelince sağ tıklayıp;

New → Activity → Empty Activity seçelim.

Yeni açtığımız Activityin ismi de oyun ekranı olsun.

Şimdi Main Activydeki butona tıklandığında yeni bir Activitye geçmek için klasik kullanılan buton yapısını kullanırız.

import android.widget.Button;

  ((Button)findViewById(R.id.button)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
     }
        });


   

İnline olarak yazdık. İçinde ise Oyuna başla butonu yeni bir intent oluşturacağız. Normalde bir Activityi başlatmak iki satırdan oluşur.

import android.content.Intent;

(Button)findViewById(R.id.button)).setOnClickListener(new 
 View.OnClickListener() {
            @Override
            public void onClick(View v) {

Intent i = new Intent(MainActivity.this,OyunEkrani.class);
          //yani MainActivity classından OyunEkranı claasına geçiş yap.      
               //iki tarafında bildiği parola.
                i.putExtra("mesaj",et.getText().toString());
                startActivity(i);
            }
        });

Şimdi mesaj geçireceğimiz bu classla oynamamız gerekiyor. Bir ilan panosu gibi bir yere mesajları yazıyoruz oradan bütün Activitylere ulaşan mesajlar var. Oraya veriyi koyuyoruz. Oradan mesajlar alınıyor.

2.Activity yani OyunEkrani .xml ine textView ekleyelim; Amacımız mesajı bu ekranda yazdırmak. Bir bu haliyle çalıştıralım.

Bir ekrandan diğerine geçiş yapabildik. Fakat mesajı geçirmek istiyoruz. Yani textView yerine “Oyuna hoşgeldiniz +isim .” demek istiyoruz. Bunu yapabilmek için mesajımızı geçirmek lazım.

EditText et =(EditText)findViewById(R.id.editText);

Aldığımız mesajı intent sırasında yeni Activitye geçirmek istiyoruz. İnlinde sınıf içinde yeni bir sınıf tanımlıyoruz. İçindeki bir değişkene erişebilmek için final kullandık. Fakat final olunca içine bir şey ekleyemiyoruz.

final  EditText et =(EditText)findViewById(R.id.editText);;

        ((Button)findViewById(R.id.button)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent i = new Intent( MainActivity.this,OyunEkrani.class);
                i.putExtra("mesaj",et.getText().toString());
                startActivity(i);
            }
        });

Activit2 yani OyunEkrani bize MainActivityden gelen mesajı verecek.

Intent i= getIntent();


        Intent i= getIntent();
        String s=  i.getStringExtra("mesaj");
        TextView td =(TextView)findViewById(R.id.textView2);
        td.setText(s);

Uygulamamızı çalıştırdığımızda;

Buraya isim girip butona bastığımızda diğer ekrana buradaki EditTextdeki girilen isim mesajı yazdırılacak.

Yorum bırakın