Android Programlama | İntent Kavramı Ve Activity'ler Arası Geçiş

deltaturk

Moderasyon Ekibi Lider Yardımcısı
26 Kas 2020
925
971
Green Team Mersin Daire Bşk.

Merhaba Dostlar, Bu konumuzda Activity’lere ait önemli yapılardan birisi olan İntent kavramını işleyeceğiz.
İntent’ler çok önemlidir bunu kesin bilmeniz lazım bir sonraki dersimizde Android Servislerini anlatırken’de İntent’lerden oldukça yararlanacağız.


İntent Nedir ?

İntent, Bir Activity’den başka bir Activity’ye geçiş için kullanılır dostlar.
İntent bizim için önemli bir kavramdır çünkü uygulamaları oluşturan temel methodlardan biridir, oldukça kolay bir mantığı vardır kolay olduğu gibi de çok önemlidir
Geçiş sırasında ziyaret edilecek Activity’ye de bilgiler gönderilebiliyor yani veri aktaramı yapabiliyoruz dostlar.
Yukarda bahsettiğimiz olaya Third Party App uygulamalar ile de iletişim sağlayabiliriz diyebiliriz.
Cihazımızda yüklü uygulamalar yani Kamera,Rehber,Takvim gibi uygulamaların çalıştırılmasında da İntent Kavramı büyük bir rol oynuyor .




İntent Türleri Nelerdir ?

İki çeşit İntent türü vardır.
1.Doğrudan Çalışan İntent
2.Dolaylı Çalışan İntent




Doğrudan Çalışan İntent

Bir Activity Manifest dosyasında tanımlı diğer Activity’leri veya servisleri çalıştırabiliyor
Doğruydan İntent kullanacağımz zaman hangi etkileşimi kullanacağımızı direk belirliyoruz
Yani Class’da hangi etkileşimin hangi etkileşimi kullancağını belirliyoruz.
Genellikle bu tür İntent’ler uygulamanın içinde kullanılır dostlar yani Bir Activity’den diğer bir Activity’ye geçiş için kullanırız.




Dolaylı Çalışan İntent

Dolaylı İntent ise adından da anlaşıldığı gibi Doğrudan çalıştırmak istediğimiz bir yapıyı değil de hangi türden bir Activitiy’yi çalıştırmak istediğimizi kendimiz seçiyoruz uygun olan Activity tek ise hemen açılır dostlar ama birden fazla sonuç varsa kullanıcıya sorulur, Android kullanıcıları bunla çoğu kez karşılaşmıştır.
Burda önemli olan şey işin görülmesidir.

Dolaylı çalışan İntent Class parametresi kullanmak yerine 3 Farklı parametre kullanır, bunlar ;



1.Action ( Faaliyet ) Parametresi

Gerçekleşecek eylem için string veri tipinde bir isimlendirme sağlar.
<action> etiketi ile bunu İntentFilter’in içine kullanabiliyoruz



2.Data Parametresi

Data Parametresi, verilerin tanımlanmasında rol oynar, bu parametreyi <data> etiketi ile İntentFilter’in içinde kullanabiliriz.
Veri tanımlaması yaparken özniteliğe dikkat etmeniz gerekmektedir.



3.Kategori ( Grup ) Sınıfı

Activity’den gelen veriyi sınıflandırmak için kullanılan önemli bir parametredir.
Kullanıcının View üzerinde yaptığı işlemler hakkında bilgi sahibidir ve bu parametreyi kullanmak için CATEGORY_DEFAULT ile İntent’in içine tanımlarız kullanımı ise <category> etiketi ile kullanılır.

Parametrelere değerler atanabilir ve bu atanan değerlere göre etkileşimler çağırılabilir mesele
E-Posta gönderme , Metin Düzenleme , Resim Görüntüleme ve Belli Bir Numarayı Arama gibi işlemlerde İntent’lerden yararlanacağız bunlar Dolaylı İntent türüne giriyor mesela bir numara aramaya çalıştığmızda bize Uygulama seçenek verir ; Telefondan mı aramak istersin yoksa WhatsApp’dan mı ?

Veya bir E-Mail göndereceksiniz, göndereceğiniz zaman; Gmail mi Kullanacaksınız yoksa Outlook’mu diye sorar bu tür şeyler Dolaylı İntent türüne girer.
Aslında bunu bilgisayar ile de örnek verebiliriz, bir dosyamız var ve farklı uygulamalarla açmak istiyoruz bunu yapmak için Sağ tuş tıklayıp ( Birlikte Aç ) düğmesini kullanılırz yani burda sistem bize hangi uygulamayla açmamızı seçmemiz için seçenekler vermiş oluyor dostlar.




İntent Filter

Etkileşim İçin İntent Filter kullanılır.
İntent Filter, Dolaylı İntent gibi aynı parametre özelliklerine sahiptir yani
Action – Data – Kategori parametrelerine sahiptir
İntent’in ve İntent Filter’in parametreleri denk geldiği zaman Activity çağrılıyor

Arama tüm uygulamalarda gerçekleşir eğer birden fazla etkileşim bulunyorsa bu size seçim olarak sunuluyor yani örnek verecek olursak bir video paylaşmak istiyoruz ve paylaşma kısmında uygulama bize Bluetooth ile mi yoksa başka bir uygulama ile mi paylaşmak istediğimi bize sorar bu aşamada o videonun hangi yöntem ile gönderileceğini kullanıcı seçiyor yani Dolaylı İntent Oluyor.




İntent’lerin Farkı

Doğrudan İntent belirlenen sayfaya otomatik geçiş yaparken Dolaylı İntent kullanıcının seçtiği biçimde istenilen sayfaya geçiş yapar.



Sayfalar Arası Geçiş İçin İntent

Bu konumuzda İntent’imizi sayfalar arası geçiş yapmak için kullanacağız, ileriki derslerde daha detaylı anlatım ve bol uygulama ile devam edeceğiz.

Activity geçişleri sırasında’da Activity yaşam döngüsü büyük bir rol oynar ve genellikle onCreate() ve onStart() döngüleri ön plandadır.

Activityler Arası geçiş nasıl sağlanır ona bakalım.

Öncelikle 2.Bir Activity Oluşturmalıyız






File >> New >> Activity >> Empty Activity – Bu yolu takip ederek 2.Bir Activity oluşturuyoruz.





MainActivity.java’dan MainActivity2.java’ya geçmek için MainActivity.java bölümüne gelip;
Intent intent = new Intent(this,MainActivity2.class); //this'den MainActivity2'ye gidiş


Java:
startActivity(intent);





Bu kodlar ile Activity’ler arası geçiş tamamdır arkadaşlar.

Ek olarak methodlar ile gerçekleştirelim ama Bir butonumuz olsun ve butona tıklayınca 2. Activity’ye geçiş yapsın.


XML ile bir Buton oluşturalım
XML:
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Geç"
android:id="@+id/button"
></Button>

Java:
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tanimla();
gecisYap();


}
public void tanimla()
{
btn = (Button) findViewById(R.id.button);
}
public void gecisYap()
{
Intent intent = new Intent(this,MainActivity2.class); //this'den MainActivity2'ye gidiş
startActivity(intent);
}
public void tiklama()
{
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
gecisYap();
}
});
}

}






Bu sayede 2.Activity’ye geçebileceğiz dostlar.
Bu konumuz bukadardı diğer konumuzda detaylı bir şekilde İntent kavramına gireceğiz.
Aklınıza takılanları sormayı ihmal etmeyin okuduğunuz için teşekkür ederim herkese iyi forumlar…

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.