Android Intent, bir aktiviteden diğerine geçiş yapmak veya farklı bileşenler arasında iletişim kurmak için kullanılan bir mekanizmadır. Bir Intent, bir işlemi gerçekleştirmek için kullanılacak olan eylemi ve verileri tanımlar.
Örneğin, bir kullanıcı bir butona tıkladığında bir Intent oluşturulabilir ve bu Intent, bir sonraki aktiviteye geçmek veya başka bir bileşenle etkileşime geçmek için kullanılabilir. Intentler aynı zamanda uygulama içi veya uygulama dışı aktiviteler arasında geçiş yapmak için de kullanılabilir.
Intentler aynı zamanda birçok farklı eylem türü destekler ve bu eylemler, kamerayı açmak, bir web sayfasını açmak, bir e-posta göndermek veya bir metin mesajı göndermek gibi farklı uygulama türlerini desteklemek için kullanılabilir.
Android uygulamaları, uygulamanın içeriğinde kullanılan tüm metinleri, resimleri ve diğer kaynakları düzenlemek için XML dosyalarını kullanır. Bu kaynak dosyaları uygulama içinde farklı dillerde yayınlanacak içeriği yönetmek için kullanılır.
strings.xml
dosyası, Android uygulamalarında kullanılan metin kaynaklarını depolamak için kullanılan bir XML dosyasıdır. Bu dosya, uygulama içinde kullanılan tüm metinlerin ana kaynağıdır ve uygulama içinde metinleri yerel dilde görüntülemek için kullanılır. Yani, uygulama içinde yer alan butonlar, başlıklar, etiketler, hata mesajları vb. gibi tüm metinler, strings.xml
dosyasında depolanır ve burada düzenlenir.
Bu dosya, farklı diller için ayrı ayrı hazırlanabilir ve uygulamanın kullanıcının ayarladığı yerel diline göre otomatik olarak yüklenebilir. Bu sayede uygulamanın farklı dillerde kullanıcılar tarafından kullanılması kolaylaşır ve uygulamanın daha geniş bir kitleye ulaşması sağlanır.
Bu örneğimizde Intent ve strings.xml dosyasını kullanarak bir mobil uygulama oluşturacağız. Bölüm tanıtımı yapan uygulamamız farklı kullanımlar içinde düzenlenebilir. (Yemek tarifi, Gezilecek tarihi yerler ve tanıtımı vs.)
Uygulamamızın ekran çıktısı yukarıdaki gibi olacaktır.
İki adet Activity’ den oluşan uygulamamıza başlayalım.
Dosya yapımız aşağıdaki gibi olacaktır. Kullanacağımız resimler ve activityler:
activity_main.xml dosyamız LinearLayout(vertical) içine yerleştirilen aşağıdaki gibi 4 adet ImageView’ den oluşacak.
Kaynak kodları ise aşağıdaki gibi olacaktır.
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 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="10dp" tools:context=".MainActivity"> <ImageView android:id="@+id/imageView_bilisim" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" app:srcCompat="@drawable/bilisim" /> <ImageView android:id="@+id/imageView_cocuk" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" app:srcCompat="@drawable/cocuk" /> <ImageView android:id="@+id/imageView_grafik" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" app:srcCompat="@drawable/grafik" /> <ImageView android:id="@+id/imageView_moda" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" app:srcCompat="@drawable/moda" /> </LinearLayout> |
Burada açıklanması gereken iki önemli nokta resimlerin eşit bir şekilde ekrana yerleşmesi için kullandığımız weight özelliğidir. Tüm resimler için bu özelliğe “1” değeri vererek eşit bir şekilde yerleşim yapılmasını sağlıyoruz.
Diğer önemli detay ilk activity’ de resimlerimizin srcCompat özelliği ile drawable klasörüne eklemiş olduğumuz (Kopyala-Yapıştır) resimlerin ayarlanmasıdır.
activity_bolum.xml dosyamızın tasarımı ise aşağıdaki gibi olacaktır.
Kaynak kodları aşağıdaki gibidir.
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 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="10dp" tools:context=".BolumActivity"> <ImageView android:id="@+id/imageView_detay_resim" android:layout_width="match_parent" android:layout_height="250dp" android:scaleType="fitXY" app:srcCompat="@drawable/ic_launcher_background" /> <TextView android:id="@+id/textView_bolum_baslik" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="40sp" android:textAlignment="center" android:layout_marginTop="10dp" android:text="TextView" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="15dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/textView_bolum_aciklama" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="22sp" android:layout_marginTop="10sp" android:text="TextView" /> </LinearLayout> </ScrollView> </LinearLayout> |
strings.xml dosyamızın içeriği:
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 | <resources> <string name="app_name">Bölüm Tanıtımları</string> <string name="bilisim_aciklama">Bilişim teknolojileri, bilgi işlem, veri işleme, bilgisayar yazılımı ve donanımı, ağ teknolojileri ve internet uygulamaları gibi alanları kapsayan geniş bir teknoloji alanıdır. Bu alan, bilgi teknolojileri, bilgi sistemleri ve bilgi yönetimi gibi alt dallara ayrılmaktadır. Bilişim teknolojileri, günümüzde hemen hemen tüm sektörlerde kullanılmaktadır. İşletmeler, endüstriyel tesisler, sağlık kurumları, kamu kurumları, bankalar ve finans kuruluşları gibi farklı sektörler, bilişim teknolojilerini kendi iş süreçlerinde kullanarak işlerini daha verimli hale getirebilmektedirler. Bunun yanı sıra, bireyler de bilişim teknolojilerini kullanarak hayatlarını kolaylaştırabilirler. Bilişim teknolojileri, işletmelerin verimliliğini arttırmak, hizmet kalitesini yükseltmek, müşteri memnuniyetini artırmak, maliyetleri azaltmak, zaman tasarrufu sağlamak, karar verme süreçlerini hızlandırmak gibi birçok avantaj sağlar. Bu nedenle, işletmelerin bilişim teknolojilerini kullanarak rekabet avantajı elde etmeleri ve diğer işletmelerle aralarındaki farkı kapatmaları mümkündür. Bilişim teknolojileri alanında çalışan uzmanlar, bilgisayar programlama, ağ yönetimi, web tasarımı, veri tabanı yönetimi, yazılım testi, proje yönetimi gibi birçok alanda uzmanlaşmışlardır. Bu uzmanlar, işletmelerin ihtiyaçlarına göre özel çözümler üretebilmekte ve müşterilerinin ihtiyaçlarını en iyi şekilde karşılayacak sistemler tasarlayabilmektedirler. Sonuç olarak, bilişim teknolojileri alanı günümüzde hemen hemen tüm sektörlerde kullanılmaktadır ve işletmelerin rekabet avantajı elde etmeleri için önemli bir rol oynamaktadır. Bireyler de bilişim teknolojilerini kullanarak hayatlarını kolaylaştırabilirler. Bilişim teknolojileri alanında çalışan uzmanlar ise işletmelerin ihtiyaçlarına özel çözümler üretmektedirler. </string> <string name="cocuk_aciklama">Çocuk gelişimi, insan hayatının en önemli dönemlerinden biridir. Çocuklar, sağlıklı bir gelişim için fiziksel, zihinsel ve duygusal olarak uygun ortamlara ihtiyaç duyarlar. Çocuk gelişimi alanı ise, çocukların bu ihtiyaçlarını karşılamak için çalışan bir multidisipliner alandır. Çocuk gelişimi alanında çalışan uzmanlar, çocukların yaşadığı her aşamada, fiziksel, zihinsel, dil, sosyal ve duygusal gelişimlerini takip ederler. Bu takip sayesinde, çocukların gelişimindeki olası aksaklıkların önceden tespit edilerek, erken müdahale edilmesi mümkün olur. Çocuk gelişimi alanı, pedagoji, psikoloji, sosyoloji, tıp ve diğer disiplinlerin birleşimi ile oluşur. Bu alanda çalışan uzmanlar, çocukların gelişimine ilişkin araştırmalar yaparak, çocukların gelişimindeki farklı faktörleri anlamaya çalışırlar. Ayrıca, çocuklara yönelik eğitim materyalleri ve programları hazırlayarak, çocukların gelişimlerine katkıda bulunurlar. Çocuk gelişimi alanında çalışan uzmanlar, okullarda, kreşlerde, aile danışmanlık merkezlerinde, hastanelerde ve diğer birçok kurumda görev yapabilirler. Bu uzmanlar, çocukların gelişimine ilişkin sorunları tespit ederek, ailelere tavsiyelerde bulunurlar. Ayrıca, çocukların gelişimini takip ederek, çocukların okul öncesi ve okul çağı eğitimlerinde başarılı olmalarını sağlarlar. Sonuç olarak, çocuk gelişimi alanı, insan hayatının en önemli dönemlerinden birinde çocukların gelişimine katkıda bulunan önemli bir multidisipliner alandır. Bu alanda çalışan uzmanlar, çocukların sağlıklı bir şekilde büyümeleri için gerekli ortamları yaratır ve çocukların potansiyellerini en üst düzeyde kullanmalarına yardımcı olur.</string> <string name="grafik_aciklama">Grafik ve tasarım alanı, günümüzün en önemli sanatsal ve işlevsel alanlarından biridir. Bu alanda çalışan profesyoneller, görsel iletişim araçlarını kullanarak, mesajların etkili bir şekilde iletilmesini sağlarlar. Grafik ve tasarım, birçok sektörde kullanılan, işletmelerin markalaşma ve tanıtım stratejilerinin temelinde yer alır. Grafik ve tasarım alanında çalışan profesyoneller, logolar, ambalajlar, reklam kampanyaları, broşürler, web siteleri ve diğer görsel iletişim araçları gibi birçok materyali tasarlarlar. Bu materyallerin tasarımı, hedef kitlenin beklentilerine uygun olması ve mesajın net bir şekilde iletilmesi için oldukça önemlidir. Grafik ve tasarım alanında çalışan uzmanlar, birçok farklı disiplinden ilham alarak, yaratıcı ve orijinal tasarımlar oluştururlar. Bu disiplinler arasında, sanat tarihi, tipografi, renk teorisi ve dijital tasarım gibi alanlar bulunur. Grafik ve tasarım uzmanları, tasarımlarını dijital araçlar ve yazılımlar kullanarak oluştururlar. Bu araçlar, tasarımcıların yaratıcılıklarını sınırlamadan, onlara sonsuz tasarım seçenekleri sunar. Grafik ve tasarım alanı, birçok sektörde kullanılır. Bu sektörler arasında, reklamcılık, yayıncılık, moda, sanat, eğlence ve teknoloji bulunur. Grafik ve tasarım uzmanları, bu sektörlerde çalışarak, müşterilerin ihtiyaçlarına uygun tasarımlar oluştururlar. Sonuç olarak, grafik ve tasarım alanı, sanatsal ve işlevsel bir disiplin olarak, günümüzde oldukça önemli bir yer tutar. Bu alanda çalışan uzmanlar, görsel iletişim araçlarıyla, mesajların etkili bir şekilde iletilmesini sağlarlar. Grafik ve tasarım alanındaki uzmanlar, yaratıcı ve orijinal tasarımlar oluşturarak, birçok sektörde kullanılan materyallerin tasarımını yaparlar.</string> <string name="moda_aciklama">Moda tasarımı, dünya genelinde büyük bir sektör haline gelmiştir ve son yıllarda giderek daha fazla ilgi görmektedir. Bu alanda çalışan moda tasarımcıları, moda endüstrisine yön vererek, yeni trendler ve tarzlar yaratırlar. Moda tasarımı, birçok farklı disiplinin bir araya gelmesiyle oluşur. Tasarımcılar, giysi tasarımı, tekstil, trend analizi, renk teorisi, kalıp çıkarma ve dikiş gibi becerileri birleştirirler. Bu becerileri kullanarak, modaya yön veren tasarımlar ve koleksiyonlar oluştururlar. Moda tasarımı alanında çalışan tasarımcılar, her sezon yeni trendler yaratarak, insanların modayı takip etmesini sağlarlar. Bu trendler, insanların giyim tarzlarında ve kişisel tarzlarında değişiklik yapmalarına neden olabilir. Tasarımcılar, aynı zamanda müşterilerin ihtiyaçlarına uygun tasarımlar yaparak, özel koleksiyonlar oluştururlar. Moda tasarımı alanı, dünya genelinde çok sayıda moda etkinliğine sahne olur. Bu etkinliklerde, moda tasarımcıları, koleksiyonlarını tanıtarak, moda endüstrisindeki yerlerini sağlamlaştırırlar. Moda haftaları, moda sergileri ve defileler, moda tasarımı alanındaki yenilikleri takip etmek için harika fırsatlar sunar. Moda tasarımı alanında çalışmak, özgürce yaratıcılık kullanmak için harika bir fırsattır. Tasarımcılar, her zaman yenilikçi olmak için farklı malzemeler, renkler ve desenler kullanarak, kendilerini sürekli olarak yenilemektedirler. Ayrıca, moda tasarımı alanı, sanatsal yetenekleri ve yaratıcılığı olan kişiler için heyecan verici bir kariyer yoludur. Sonuç olarak, moda tasarımı alanı, dünya genelinde büyük bir sektör haline gelmiştir ve giderek daha fazla ilgi görmektedir. Moda tasarımcıları, moda endüstrisine yön vererek, yeni trendler ve tarzlar yaratırlar. Bu alanda çalışmak, özgürce yaratıcılık kullanmak için harika bir fırsat sunar ve moda dünyasındaki yenilikleri takip etmek için heyecan verici bir kariyer yoludur.</string> <string name="bilisim_baslik">Bilişim Teknolojileri Alanı</string> <string name="cocuk_baslik">Çocuk Gelişimi Alanı</string> <string name="grafik_baslik">Grafik ve Tasarım Alanı</string> <string name="moda_baslik">Moda Tasarım Alanı</string> </resources> |
MainActivity.java dosyamız:
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 | package com.example.bolumtanitim; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { ImageView imageViewBilisim,imageViewCocuk,imageViewGrafik,imageViewModa; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageViewBilisim=findViewById(R.id.imageView_bilisim); imageViewCocuk=findViewById(R.id.imageView_cocuk); imageViewGrafik=findViewById(R.id.imageView_grafik); imageViewModa=findViewById(R.id.imageView_moda); imageViewBilisim.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Gonder(1); } }); imageViewCocuk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Gonder(2); } }); imageViewGrafik.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Gonder(3); } }); imageViewModa.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Gonder(4); } }); } private void Gonder(int giden) { Intent intent=new Intent(MainActivity.this,BolumActivity.class); intent.putExtra("bolumId",giden); startActivity(intent); } } |
BolumActivity.java dosyamız:
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 | package com.example.bolumtanitim; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; public class BolumActivity extends AppCompatActivity { ImageView imageViewDetayResim; TextView textViewBolumBaslik,textViewBolumAciklama; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bolum); imageViewDetayResim=findViewById(R.id.imageView_detay_resim); textViewBolumBaslik=findViewById(R.id.textView_bolum_baslik); textViewBolumAciklama=findViewById(R.id.textView_bolum_aciklama); Intent intent=getIntent(); int gelenVeri=intent.getIntExtra("bolumId",1); if(gelenVeri==1){ imageViewDetayResim.setImageResource(R.drawable.bilisim_detay_resim); textViewBolumBaslik.setText(R.string.bilisim_baslik); textViewBolumAciklama.setText(R.string.bilisim_aciklama); } else if(gelenVeri==2){ imageViewDetayResim.setImageResource(R.drawable.cocuk_detay_resim); textViewBolumBaslik.setText(R.string.cocuk_baslik); textViewBolumAciklama.setText(R.string.cocuk_aciklama); } else if(gelenVeri==3){ imageViewDetayResim.setImageResource(R.drawable.grafik_detay_resim); textViewBolumBaslik.setText(R.string.grafik_baslik); textViewBolumAciklama.setText(R.string.grafik_aciklama); } else if(gelenVeri==4){ imageViewDetayResim.setImageResource(R.drawable.moda_detay_resim); textViewBolumBaslik.setText(R.string.moda_baslik); textViewBolumAciklama.setText(R.string.moda_aciklama); } } } |
AndroidManifest dosyamıza Bölümlerden MainActivity sayfasına geçiş için Geri butonu ekleyelim.
parentActivityName
, bir Android aktivitesinin ebeveyn aktivitesinin adını belirtmek için kullanılan bir özelliktir. Ebeveyn aktivite, bir alt aktiviteyle bağlantılı olan ve kullanıcının geri düğmesine tıkladığında geri dönülecek olan üst seviye aktivitedir.
Bir alt aktivite başlatıldığında, parentActivityName
özelliği, alt aktivitenin geri düğmesine tıklanarak geri dönülecek olan ebeveyn aktivitenin adını belirtir. Bu özellik, AndroidManifest.xml
dosyasında alt aktivite tanımı içinde kullanılır ve aktivite sınıfının yanı sıra, aktivitenin etiketlerini, ikonunu ve diğer özelliklerini de tanımlayan diğer özelliklerle birlikte kullanılabilir.
parentActivityName
özelliği, uygulama içinde navigasyonun yönetimini kolaylaştırır ve kullanıcı deneyimini geliştirir. Özellikle, uygulama içindeki farklı ekranlar arasında gezinme işlemi, bu özellik sayesinde daha tutarlı ve kolay hale getirilebilir.