Java ile Androıd. Programlama. Çağlar Artar



Benzer belgeler
BQTEK SMS Asistan. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Digifresh Kullanım Kılavuzu

ÖĞRENME FAALĠYETĠ GELĠġMĠġ ÖZELLĠKLER

Android Uygulamalarında Güvenlik Testi

Genel bilgiler Windows gezgini Kes Kopyala Yapıştır komutları. 4 Bilinen Dosya Uzantıları

Evrak Ekle. Kurum İçi Giden Evrak Ekleme. Kırmızı renker; doldurulması zorunlu alanları ifade etmektedir. İleri Geri tarihli işlem yapılamamaktadır.

K12NET Eğitim Yönetim Sistemi

ÖĞRENME FAALĠYETĠ 6 ÖĞRENME FAALĠYETĠ NESNE ĠġLEMLERĠ

META TRADER 4 MOBİL İŞLEM PLATFORMLARI KULLANMA KILAVUZU 1. KURULUM

B02.8 Bölüm Değerlendirmeleri ve Özet

1. Mesaj Tipi ve Mesaj Fonksiyonu Bazında Bildirim Mail Adresi Tanımlama Đşlemleri

BİT ini Kullanarak Bilgiye Ulaşma ve Biçimlendirme (web tarayıcıları, eklentiler, arama motorları, ansiklopediler, çevrimiçi kütüphaneler ve sanal

MAKÜ YAZ OKULU YARDIM DOKÜMANI 1. Yaz Okulu Ön Hazırlık İşlemleri (Yaz Dönemi Oidb tarafından aktifleştirildikten sonra) Son aktif ders kodlarının

B05.11 Faaliyet Alanı

Vodafone Mobil Form Tanıtım Sunumu

C# Programlama. Visual Studio 2010 Arayüzü. Prof. Dr. Ümit KOCABIÇAK SAKARYA ÜNİVERSİTESİ

Bölgeler kullanarak yer çekimini kaldırabilir, sisli ortamlar yaratabilirsiniz.

Builder Tasarım Şablonu KurumsalJava.com

Anonim Verilerin Lenovo ile Paylaşılması. İçindekiler. Harmony

Bilgisayar Uygulamaları PSİ105

Analiz aşaması sıralayıcı olurusa proje yapımında daha kolay ilerlemek mümkün olacaktır.

SÜREÇ YÖNETİMİ VE SÜREÇ İYİLEŞTİRME H.Ömer Gülseren > ogulseren@gmail.com

Braille Star 40 Başvuru Kitapçığı Sürüm 4.0 Lütfen bu başvuru kitapçığıyla birlikte paketinizde bulunan kullanıcı kılavuzunu da gözden geçirin.

Uzem Eğitmen Girişi. Şekil 1. Sisteme girdikten sonra Şekil 2 deki ekran karşımıza çıkacak. Bu ekrandaki adımları kısaca tanıyalım.

VEZNE PROGRAMINDA POSTA ÜCRETİ İLE İLGİLİ YAPILAN DÜZENLEMELER (Vezne Sürüm: )

İMZALAMA ARACI. Kullanım Kılavuzu. Nisan 2016 ANKARA. İmzalama Aracı Kullanım Kılavuzu Nisan 2016 Versiyon : 1.0 1/15

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

QR Kodu Tarayıcısı / Okuyucusuna Uygun Uygulamalarda Kullanım İçin

Temel Bilgisayar Programlama

İstemci Yönetimi ve Mobile Printing (Mobil Baskı) Çözümleri

MOBİL UYGULAMA GELİŞTİRME

VEGAWINA VERSION

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

KAPSAMLI İÇERİK SADELEŞTİRİLMİŞ ARAMA MOTORU YENİLİKÇİ BİLGİ İŞLEME TEKNOLOJİSİ PRATİK GÖRÜNTÜLEME ARAÇLARI MOBİL ERİŞİM

Eğitim No/Eğitim Adı: 14-E Tedarikçi Barkod Uygulaması

Publication : Techno-labs. Title. Date : : WD My Book Live. WD My Book Live

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI YÜZEY DOLDURMA TEKNİKLERİ

MSSQL Server 2000 Kurulumu

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

EPKAS (ELEKTRONİK PROJE KONTROL ARŞİVLEME SİSTEMİ) WEB KULLANIM KILAVUZU

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

ENF TEMEL BİLGİSAYAR BİLİMLERİ Eğitim/Öğretim Yılı Bahar Dönemi DÖNEM SONU LAB. ÖDEV TESLİM DUYURUSU

DOKÜMAN YÖNETİM SİSTEMİ KULLANIMI GELEN EVRAK

AĞ ÜZERİNDEN YAZICI ve TARAYICI TANIMLAMA KLAVUZU

OFİS 365 ÖĞRENCİ MAİL SİSTEMİ KULLANIM KLAVUZU. Office 365

Dersin İçeriği (Temel Bilgi Teknolojileri)

Q-BIZ VIEWER KULLANIM KILAVUZU

TS7200 PLATFORMU ÜZERİNDE SERİ PORT-ETHERNET DÖNÜŞTÜRÜCÜ UYGULAMASI

1 Aralık E-Beyanname Modülünde Yapılan İşlemler

1 BOOTSTRAP NEDİR? 1 Bootstrap Nedir? 1 Bootstrap Dosyalarının Siteye Dahil Edilmesi 2 Bootstrap ın Sağladığı Kolaylıklar 3

YATIRIM FONU ALIM SATIM İŞLEMLERİ KULLANICI KILAVUZU

in Kullanımı tamamlamış gerçekleştirmiş

Etkinliklere katılım, ücretli ve kontenjan ile sınırlıdır.

Kis3 max Cep Telefonu Hızlı Başlangıç Kılavuzu

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

Tasarım Raporu. Grup İsmi. Yasemin ÇALIK, Fatih KAÇAK. Kısa Özet

DÖNER SERMAYE MALİ YÖNETİM SİSTEMİ

Nesneye Yönelik Programlama-JAVA, Ders sorumlusu Yrd.Doç.Dr.Hilmi KU ÇU

KOCAELİ İL MİLLİ EĞİTİM MÜDÜRLÜĞÜ EVRAK TAKİP SİSTEMİ

BLACKBERRY BİREYSEL AKILLI TELEFON KAMPANYA TAAHHÜTNAMESİ

TOHUMLUK VERİ YÖNETİM SİSTEMİ. KULLANIM ve YARDIM KILAVUZU

MOBİL UYGULAMA GELİŞTİRME

EBYS Eğitimi. Sisteme erişim adresi:

LG BİREYSEL AKILLI TELEFON KAMPANYA TAAHHÜTNAMESİ

ve Menüleri Özelleştirmek, Sistem Ayarlarını Değiştirmek

Şekil 1. Sistem Açılış Sayfası

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Hackerlar'ın Gözünden Flash Uygulamaları

YÜKSEKÖĞRETİM KURUMLARI ENGELLİLER DANIŞMA VE KOORDİNASYON YÖNETMELİĞİ (1) BİRİNCİ BÖLÜM. Amaç, Kapsam, Dayanak ve Tanımlar

Çevrimiçi paylaşım 3.1. Baskı 1

BIM BUILDING INFORMATION MODELING YAPI BİLGİ MODELİ

Mobil Uygulama Geliştirme (ISE 507) Ders Detayları


MikroÖdeme Servis Dökümanı

SMART Board EĞİTİMLERİ(sürüm:10) 2. Aşama

KolayOfis Başlangıç Rehberi Kısa Mesaj Yönetimi

BULUġ BĠLDĠRĠM FORMU/ GIDA

Windows VISTA Ultimate Kurulumu ve Yönetimi

Veri Toplama Yöntemleri. Prof.Dr.Besti Üstün

SENATO 2016/1-IV

ACENTE PORTAL QUICKRES/TROYA ACENTE BAŞVURU KILAVUZU

AIMCO AIMCO. Kullanım Kılavuzu. Mayıs 2016

HAM PUAN: Üniversite Sınavlarına giren adayların sadece netler üzerinden hesaplanan puanlarına hem puan denir.

Sketch Up. - Bilgisayar Dersleri 1. 3 Boyutlu Çizimler ve Google

YENİ EKLENEN FİBER PAKETLER VE ADRESTEN FİBER SORGULAMA EKRANLARI

ÖZEL İLETİŞİM VERGİSİ GENEL TEBLİĞİ (SERİ NO: 14) BİRİNCİ BÖLÜM

Yedekleme ve Kurtarma Kullanıcı Kılavuzu

: 3218 Sayılı Serbest Bölgeler Kanunu Genel Tebliği (Seri No: 1) nde Değişiklik Yapılmasına Dair Tebliğ (Seri No: 3) yayımlandı.

İşletim Sisteminin Katmanları

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Autodesk Building Design Suite Sorular ve Cevapları

Xerox ConnectKey Teknolojisine sahip Çok Fonksiyonlu Yazıcılarla (MFP'ler) Kullanım İçin

M i m e d ö ğ r e n c i p r o j e l e r i y a r ı ş m a s ı soru ve cevapları

ETKİLEŞİMLİ TAHTA KORUMA SİSTEMİ KURULUM


Proje 1. Arayüz Tasarımı

İçindekiler Hosting hizmeti için silme isteği oluşturulması Reseller Paketi altında hosting hizmetinin oluşturulması Kesintiyi en aza indirmek için

Transkript:

Java ile Androıd Programlama Çağlar Artar

İçindekiler Bölüm 1: Androıd İşletim Sistemi 1 Android Nedir? 2 Neden Android? 3 Android in Gelişim Süreci 4 Android in Kullanım Alanları 5 Android in Geleceği? 6 Android Uygulama Geliştirerek Para Kazanmak Mümkün Mü? 7 Mobil İşletim Sistemleri 8 ios 9 Windows Phone 9 Blackberry OS 9 Symbian OS 9 Web OS 10 Maemo OS 10 MeeGo OS 10 Bada OS 10 Tizen OS 11 Limo OS 11 Sailfish OS 11 Neler Öğrendik? 11 Bölüm 2: Gerekli Araçların Kurulumu ve Ayarları 13 Giriş 14 Windows Ortamı için Java JDK Kurulumu 15 Mac OS X Ortamı için Java JDK Kurulumu 19 Linux için Java JDK Kurulumu 20 Windows Ortamı için Android Studio ve SDK Kurulumu 20 Mac OS X Ortamı için Android Studio ve SDK Kurulumu 23

viii Java ile Androıd Programlama İçindekiler Linux Ortamı için Android Studio ve SDK Kurulumu 26 Yeni Proje Oluşturmak 27 Android Studio Kullanıcı Arayüzü 31 Araç Çubuğu (Toolbar) 32 Proje Hiyerarşi Paneli (Project Panel) 34 Tasarım Paneli (Design Panel) 35 Android SDK Manager 36 AVD (Android Virtual Device) Manager 38 Intel HAXM (Hardware Accelerated Execution Manager) 44 Genymotion - Hızlı Android Sanal Aygıtı 47 Neler Öğrendik? 51 Bölüm 3: Androıd için Java 53 Giriş 54 Java Nedir ve Nasıl Çalışır? 55 Eclipse Editörü 56 Eclipse Kullanıcı Ara Yüzü 58 Yeni Java Projesi Oluşturmak 59 Yazım Kuralları 61 Yorum Satırları 62 Sınıf ve Nesne Kavramları 62 Sınıf Tanımlama 64 Nesne Tanımlama 65 Değişkenler Ve Değişken Tipleri 68 Referans Veri Tipleri 70 Değişkenleri Tanımlamak 70 Operatörler 71 Aritmetik Operatörler 72 İlişkisel Operatörler 72 Atama Operatörleri 73

ix Java ile Androıd Programlama İçindekiler Metodlar 74 Metod Tanımlama 74 Main Metodu 79 Overloading Metodlar 79 Constructor Yapıcı Metodlar 81 Erişim Belirteçleri 83 Public 83 Private 84 Protected 84 Default Ön Tanımlı (Friendly) 84 Statıc Anahtar Kelimesi 86 Koşul Yapıları 89 if-than-else Koşul Yapısı 89 Soru İşareti Operatörü 93 switch case Koşul Yapısı 94 Döngüler 97 while Döngüsü 98 do whıle Döngüsü 100 for Döngüsü 102 Diziler 104 Dizilere Değer Atamak 106 İstisnalar 108 Çoklu catch Yapısı 113 Paketler 116 Paketleri Oluşturmak ve Kullanmak 117 Giriş Çıkış ve Dosya İşlemleri 120 Dosya İşlemleri 120 Stream 123 Byte Stream 125

x Java ile Androıd Programlama İçindekiler Character Stream 126 Buffered Stream 128 final Anahtar Kelimesi 129 this Anahtar Kelimesi 133 Neler Öğrendik? 135 Bölüm 4: Nesne Yönelimli Programlama 137 Giriş 138 Kalıtım (Inheritance) 138 Kalıtım İşlemleri 139 super Anahtar Kelimesi 143 Geçersiz Kılmak (Override) 146 Çok Biçimlilik (Polymorphism) 149 Soyut (Abstract) 152 Kapsülleme (Encapsulation) 156 Ara Yüzler (Interfaces) 160 İş Parçacıkları (Thread) 163 Neler Öğrendik? 168 Bölüm 5: XML (Extensıble Markup Language) 169 Giriş 170 XML Nedir? 170 XML Kullanım Alanları? 171 Yeni XML Dosyası Oluşturmak 171 Deklarasyon 172 Etiketler 174 Özellikler 176 Ölçü Birimleri 178 strıngs.xml 180 dımens.xml 181

xi Java ile Androıd Programlama İçindekiler colors.xml 182 Yorum Satırları 184 Varlık Referansları 185 Karakter Verileri (CDATA) 186 Neler Öğrendik? 186 Bölüm 6: Androıd Kullanıcı Arayüz Tasarım Bileşenleri 187 Giriş 188 Kullanıcı Arayüz Elemanları 188 Widgets 189 TextFields 190 Containers 191 Date & Time 191 Expert 191 Layouts 192 Arayüz Elemanları Özellikleri 195 id 195 layout_height 196 layout_width 196 layout_gravity 196 layout_weight 196 gravity 196 layout_margin 196 layout_margintop 197 layout_marginbottom 197 layout_marginleft 197 layout_margınright 197 padding 197 paddingtop 197

xii Java ile Androıd Programlama İçindekiler paddingbottom 197 paddingleft 197 paddingright 197 background 197 enabled 198 Arayüz Tasarım Uygulaması 198 Dikey Ekran için Arayüz Tasarımı 198 Yatay Ekran için Arayüz Tasarımı 201 Sanal Aygıt Üzerinde Projeyi Çalıştırmak 203 Genymotion Üzerinde Projeyi Çalıştırmak 204 Gerçek Mobil Aygıtlar Üzerinde Uygulamayı Çalıştırmak 205 Hata Görüntüleme Pencereleri 206 Neler Öğrendik? 207 Bölüm 7: Temel Androıd Bileşenleri ve Kavramları 209 Giriş 210 Android Mimarisi 210 Linux Çekirdeği (Linux Kernel) 211 Kütüphaneler (Libraries) 211 Çalışma Zamanı (Android Runtime) 211 Uygulama Çerçevesi (Application Frameworks) 211 Uygulamalar (Applications) 211 Dalvik Sanal Makinesi 211 ART (Android Run Time) 212 Aktiviteler (Activities) 212 Yeni Bir Aktiviti Oluşturmak 213 Aktivite (Activity) Sınıfı 213 Aktivite (Activity) Sınıfının Yaşam Döngüsü 213 R.java Sınıfı 217

xiii Java ile Androıd Programlama İçindekiler AndroidManifes.xml Dosyası 219 Loglama 221 Dinleyiciler (Listener) 223 Diyalog Yapıları 227 Alert Dialogue 227 Toasts 233 Bildiri (Notifications) 234 Liste Görünümü (List View) 237 Intent 243 Sayfalar (Aktiviteler) Arası Geçiş İşlemleri 244 Sayfalar (Aktiviler) Arası Veri Taşıma İşlemleri 245 Sayfalardan (Aktivitelerden) Sonuç Döndürme 249 Yayın Alıcıları (Broadcast Receivers) 252 Servisler (Services) 257 AsyncTask 267 Action Bar 275 Fragments 280 Neler Öğrendik? 285 Bölüm 8: Androıd Studıo ile Gelen Hazır Uygulama Şablonları 287 Giriş 288 Uygulama Şablonları 289 Sekmeli Sayfalar (Tabbed Activity) 289 Navigasyon Menüler (Navigation Drawer Menu) 299 Master/Detail Flow (Ana/Detay Akışı ) 313 Tam Ekran Sayfalar (Full Screen Activity) 322 Google Haritalar (Google Maps Activity) 326 Google Play Servisleri (Google Play Servıce Activity) 326 Activity Şablonları 327

xiv Java ile Androıd Programlama İçindekiler Blank Activity 327 Blank Activity With Fragment 327 Android TV Activity 327 Blank Wear Activity 327 Login Activity 327 Settings Activity 327 Diğer Şablonlar 328 Neler Öğrendik? 328 Bölüm 9: Konum Servisleri ve Google Haritaları 329 Giriş 330 Google Servislerin Genymotıon Üzerine Kurulumu 330 Konum Servisleri 331 Google Haritalar Servisi 342 Neler Öğrendik? 355 Bölüm 10: Veri Depolama İşlemleri 357 Giriş 358 SharedPreferences 358 Internal Storage 364 External Storage 366 SQLıte 369 Veritabanı Oluşturmak 370 Tablo Oluşturmak ve Silmek 371 Kayıt Ekleme (Insert) 373 Kayıtları Listeleme (Select) 375 Kayıt Güncelleme (update) 379 Kayıt Silme (delete) 380 SQLıte Uygulaması 381 Neler Öğrendik? 390

xv Java ile Androıd Programlama İçindekiler Bölüm 11: Androıd de Ağ İşlemleri 391 Giriş 392 Volley Kütüphanesi 392 Volley Kütüphanesini Projeye Dahil Etmek 393 Volley Kütüphanesi Kullanımı 395 StrıngRequest 395 JsonRequest 397 ImageRequest 399 İstekleri İptal Etmek 400 WebVıew Kullanımı 401 Neler Öğrendik? 405 Bölüm 12: Androıd Uygulamaların Yayına Hazır Hale Getirilmesi 407 Giriş 408 Uygulamaların Paketlenmesi ve İmzalanması 408 Uygulamaların Google Play Store Üzerine Yüklenilmesi 411 Neler Öğrendik? 414

3 Androıd için Java Bu Bölümde Giriş 54 Java Nedir ve Nasıl Çalışır? 55 Eclipse Editörü 56 Yazım Kuralları 61 Sınıf ve Nesne Kavramları 62 Değişkenler ve Değişken Tipleri 68 Operatörler 71 Metodlar 74 Erişim Belirteçleri 83 Static Anahtar Kelimesi 86 Koşul Yapıları 89 Döngüler 97 Diziler 104 İstisnalar 108 Paketler 116 Giriş Çıkış ve Dosya İşlemleri 120 final Anahtar Kelimesi 129 this Anahtar Kelimesi 133 Neler Öğrendik? 135 Android uygulamaların yapı taşlarını java dilinin temel kavram ve prensipleri oluşturur. Dolayısıyla bu yola baş koyan bir android severin, java dilinin temel kavram ve prensiplerini çok iyi talim etmesi gerekir. Bu bölümde, Java yazılım dili nedir? Java yazılım dilinin temel kavram ve prensipleri nelerdir? Bu kavram ve prensiplerin kullanım şekilleri ve bunlara ait gerekli teknik ayrıntılar nelerdir? Bu ve buna benzer birçok sorunun cevabını birlikte arayacağız.

Java Nedir ve Nasıl Çalışır? 55 Java Nedir ve Nasıl Çalışır? Java nesne yönelimli programlama tekniğini benimsemiş, platformlardan bağımsız olarak çalışan çok işlevli bir programlama dilidir. Java diliyle geliştirilen uygulamaların platformdan bağımsız olarak çalışması, bu uygulamaların her işletim sistemi üzerinde çalıştırılabilir olduğu manasına gelmektedir. Java dilinin sahip olduğu bu özellik, kendi kategorisinde bulunan diğer dillerden kendisini ayıran en önemli özelliklerinden bir tanesidir. Java diliyle masaüstü uygulamaları dahil olmak üzere, web uygulamaları, mobil cihazlara yönelik uygulamalar gibi bir çok alanda ve cihazda kullanılabilecek uygulamalar geliştirmek mümkündür. Java diliyle uygulama geliştirmek için kullanılan 3 farklı java sürümü mevcuttur. Bu sürümler geliştiricilere ücretsiz olarak sunulmaktadır. Bunları sırasıyla tanıyalım:» Java JSE (Java Standart Edition): Sunucu uygulamaları, masaüstü uygulamaları geliştirmek için gerekli olan araç ve kütüphaneleri içerisinde barındıran en temel sürümdür.» Java EE (Java Enterprise Edition): Geniş ölçekli kurumsal ve web uygulamaları geliştirmek için kullanılan sürümdür.» Java ME (Java Micro Edition): Taşınabilir mobil telefonlar, tabletler vb. cihazlar ve PDA ve TV setleri gibi aygıtlar için uygulama geliştirmek için kullanılan sürümdür.» Java diliyle ilgili bahsedilmesi gereken diğer kavramlar ise, bir önceki bölümden anımsadığımız JVM, JRE ve JDK kavramlarıdır.» JVM (Java Virtual Machine): Türkçede java sanal makinesi olarak adlandırılan bu bileşen, java diliyle yazılmış olan kodların tüm platformlarda çalıştırılmak üzere geliştirilmiş bir bileşendir. Bununla birlikte her platforma uygun ayrı sürümleri de mevcuttur. Dolayısıyla Java, platformlardan bağımsız olarak çalışmasını ve bir kere yaz her yerde çalışsın felsefesini JVM ile gerçekleştirebilmektedir.» JRE (Java Runtime Environment): Java programlarını çalıştırmak için gerekli olan yazılımdır. İçerisinde JVM ve Java kütüphanelerini de barındırır. Dolayısıyla bir bilgisayar üzerinde, java diliyle geliştirilmiş bir uygulamayı çalıştırabilmek için bu yazılımın bilgisayara kurulu olması gerekmektedir.» JDK (Java Development Kit): JDK nın bir önceki bölümde, java uygulamalarını geliştirmek için gerekli olan tüm araçları barındıran bir yazılım geliştirme ortamı olduğundan bahsetmiştik. Burada JDK ile ilgili değinmek istediğim bir diğer husus ise, JDK nın bünyesinde JVM ve JRE yi de barındırdığı gerçeğidir. Dolayısıyla bir önceki bölümde gösterildiği gibi JDK yı bilgisayarımıza kurduğumuz zaman

64 Bölüm 3 Androıd için Java Sınıf Tanımlama Sınıf kavramı hakkında bilgi edindikten sonra sınıf tanımlama işleminin nasıl gerçekleştirildiğini görelim. Sınıflar aşağıda gösterilen sözdizimine göre tanımlanırlar. Java Kodu class SinifAdi { } // Sınıf kod bloğu 1. class SinifAdi : Sınıf tanımlaması öncelikle class anahtar sözcüğü ile başlatılır. Sonrasında ise sınıfın ismi belirtilir. 2. {} : Sınıfın yapısı {} süslü parantezler içerisinde kurulur. Bu kısma ayrıca sınıf kod bloğu adı da verilmektedir. Sınıfla ilgili tüm özellikler ve metodlar bu parantezler içerisinde tanımlanır. Aşağıda verilen sözdizimine göre oluşturulmuş bir sınıf örneği yer almaktadır. Java Kodu 1 class MesajYaz 2 { 3 public static void main(string[] args) 4 { 5 System.out.println("Android uygulama geliştirme dersleri"); 6 } 7 } 1. Örnekte gösterildiği üzere MesajYaz isimli bir sınıf yapısı tanımlanmış ve sınıfın kod bloğu içerisinde yer alan 3. satır üzerinde main isimli bir metod oluşturulmuştur. Bu metodun önemine binaen ayrıca üzerinde durmamız gerekiyor. 2. Java da programların çalıştırılması için kullanılan main metodu aynı zamanda programların ana metodudur. Programlar ana metod olmadan çalıştırılamazlar. Java kodu çalıştırma işlemine sokulduğu zaman ilk olarak sınıf içerisinde tanımlanan main metoduna bakılır ve bu metod içerisinde yer alan kodlar çalıştırılır. main metodu projemizde yer alan sınıflar arasında herhangi birinin içerisinde bir kez tanımlanır. main metodu verilen örnek üzerinde gösterildiği gibi tanımlanmaktadır. Metod kavramını sonraki bölümlerde daha ayrıntılı ele alacağız.

Sınıf ve Nesne Kavramları 67 21 Kitaplar kitap = new Kitaplar(); 22 kitap.kitapadi = "Android Programlama"; 23 kitap.kitapyazari = "Anonim"; 24 kitap.kitapkategorisi = "Mühendislik Kitabı"; 25 MuhendislikKitaplari muhkitap = new MuhendislikKitaplari(); 26 muhkitap.kitapturu = "Bilgisayar" ; 27 // Oluşturulan kitabın bilgilerini yaz. 28 System.out.println("KITAP BILGILERI"); 29 System.out.println("Kitap Adı : " + kitap.kitapadi); 30 System.out.println("Kitap Yazarı : " + kitap.kitapyazari); 31 System.out.println("Kitap Kategorisi :" + kitap.kitapkategorisi); 32 System.out.println("Kitap Turu : " + muhkitap.kitapturu); 33 34 } 35 36 } 1. Verilen örnekte görüldüğü üzere Kitaplar, MuhendisKitaplari ve CocukKitaplari isimleriyle 3 tane sınıf yapısı bulunmaktadır. Amacımız bu sınıfların özelliklerini kullanarak ortaya bir kitap çıkarmak olacaktır. 2. Kitaplar sınıfını bu 3 sınıf arasında ana sınıf olarak kabul edebiliriz. Bu sınıf içerisinde her türlü kitabın ortak özelliği olarak kabul edilebilir olan özellikler tanımlıdır. MuhendislikKitaplari ve CocukKitaplari sınıfları da kendi kitap kategorilerine ait olan özellikleri içerisinde barındırmaktadır. 3. Bu sınıflara ait özellikler kendi kod blokları içerisinde yer alan değişken tanımlamalarıyla belirlenmektedir. Sınıfların içerisinde String ifadesiyle başlayan tanımlamaların hepsi birer değişkendir. NOT Değişkenleri kısaca verilerin tutulduğu ve saklandığı yapılar olarak tanımlayabiliriz. Sonraki derslerde bu kavram hakkında daha ayrıntılı bilgi edineceğiz. 4. 21. satırda görüldüğü üzere Kitaplar sınıfından kitap isminde bir nesne türetilmektedir. Sonrasında 22, 23 ve 24. satırlar üzerinde türetilen nesnenin öğelerine, oluşturulacak olan kitabın özelliklerine ait değerler atanmaktadır. 5. 25. satırda bu kez MuhendislilKitaplari isimli sınıftan muhkitap isimli bir nesne türetilmiş sonrasında bu satırın altında yer alan 26. satır üzerinde, bu nesneye ait kitapturu isimli nesne öğesine erişilmekte ve değer ataması yapılmaktadır. 6. Son olarak 26 ve 33. satırlar arasında nesne öğelerine atanan değerler ekrana çıktı olarak verilmektedir. Programın ekran çıktısı aşağıda gösterildiği gibi olacaktır.

8 Androıd Studıo ile Gelen Hazır Uygulama Şablonları Bu Bölümde Giriş 288 Uygulama Şablonları 289 Activity Şablonları 327 Diğer Şablonlar 328 Neler Öğrendik? 328 Android Studio, Android uygulamalarının gelişim sürecini hızlandırmak ve kolay bir hale getirmek için geliştiricilere hazır şablonlar sunmaktadır. Bu bölümde, Android Studio içerisinde yer alan hazır uygulama şablonlarını ve bu şablonlar içerisinde yer alan uygulama modüllerini ele alacağız.

Uygulama Şablonları 289 Uygulama Şablonları Android Cihazları üzerinde çalıştırılabilinen ve test edilinebilinen temel android uygulama modüllerinin tümüne verilen isimdir. Bu şablon içerisinde yer alan uygulama modülleri yeni bir projenin activity türü olarak kullanılabilindiği gibi, mevcut projenin bir parçası olarakta kullanılabilinirler. Sekmeli Sayfalar (Tabbed Actıvıty) Türkçede sekmeli sayfalar olarak adlandırılan Tabbed Activity, adından da anlaşılacağı üzere bir activity ekranı üzerinde sekmeli sayfalar oluşturmamızı sağlayan bir uygulama modülüdür. Her sekmenin altında, farklı içerikler görüntüleyen sayfalar yer alır. Böylece bir activity ekranı üzerinde birçok içeriğin görüntülenmesi sağlanmış olunur. Tabbed yapısı aşağıda verilen görsel üzerinde gösterildiği üzere 3 kısımdan oluşmaktadır. Android Studio içerisinde oluşturulan sekmeli sayfalar ön tanımlı olarak içerisinde ActionBar bulundururlar, ActionBar ın hemen altında yer alan kısımda farklı sayfa içeriklerini görüntülemek için kullanılan sekmeler yer alır. Ekranın orta kısmında yer alan View Pager yapısı ise, sekmelerin altında yer alan sayfalar arasında geçişi sağlayan ve bu sayfaları bir arada tutan yapıdır. Şimdi sekmeli activity sayfalarının nasıl oluşturulduğunu görelim. Öncelikle Tabbed adında yeni bir proje oluşturuyoruz. Projenin activity türünüde Tabbed Activity olarak seçiyoruz. Activity türünü seçtikten sonra karşımıza oluşturulacak olan Tabbed Activity ile ilgili ön tanımlamaların yapılacağı aşağıda gösterilen bir pencere çıkacaktır. Bu pencere üzerinde Tabbed Activity yapısını oluşturan kaynak ve xml dosyalarının isim bilgilerini belirleyeceğiz.

SQLıte 379 yer alan birinci alan id olduğundan, bu alanın indis numarası 0 olacaktır. Dolayısıyla getstring(0) ifadesi tablonun id alanında bulunan veriyi elde edecektir. Kayıt Güncelleme (update) Veritabanına daha öncesinde eklenmiş olan kayıtlar üzerinde değişiklik yapma ihtiyacı duyulabilinir. Bu durumumda aşağıda verilen SQL söz dizimi kullanılır. UPDATE TABLO_ADI SET ALAN_ADI = DEGER WHERE ALAN_ADI = DEGER ; SQL sözdizimi UPDATE ile başlar ve bu ifadenin hemen ardından güncelleme işlemi yapılacak olan tablo adı yazılır. SET ifadesinden sonra güncelleme işlemlerinin yapılacağı alan adları ve bu alanlarda yer alacak yeni değerler yazılır. Güncelleme işlemi için verilecek olan koşul ifadeleri ise yine WHERE söz diziminden sonra yazılır. Aşağıda UPDATE SQL söz dizimi kullanılarak güncelleme işlemi yapmak için oluşturulmuş bir metot yapısı yer almaktadır. public void ogrencikaydiniguncelle(int id) { final String TABLO_ADI = "ogrenci" ; String ogrenciadi = "Çağlar"; String ogrencisoyadi = "Artar"; SQLiteDatabase db = this.getwritabledatabase(); String updatequery = "UPDATE "+TABLO_ADI+" SET ogrenci_adi = "+ ogrenciadi+", ogrenci_soyadi = " + ogrencisoyadi+ " WHERE id = " + id +" "; } db.execsql(updatequery); db.close(); Güncelleme işlemi için kullanılan bir diğer yöntemde ise update metodundan faydalanılmaktadır. Metod güncelleme işlemi için gerekli olan SQL sorgusunu kendisi oluşturur. public void ogrencikaydiniguncelle(int ogrenci_id) { } public final String TABLO_ADI = "ogrenci" ; SQLiteDatabase db = this.getwritabledatabase(); ContentValues values = new ContentValues(); values.put("ogrenci_adi", "Çağlar"); values.put("ogrenci_soyadi", "Artar"); db.update(tablo_adi, values, "id" + " =?", new String[]{String.valueOf(ogrenci_id)}); db.close();

402 Bölüm 11 Androıd de Ağ İşlemleri Ekranın ortasında yer alan WebView arayüz elemanı içerisinde, adresi verilen web sayfaları görüntülenecektir. Ekranın en üstünde yer alan EditText ise gidilecek olan web adresinin yazılacağı alan olarak kullanılacak. Ekranda yer alan Git butonu adresi yazılan sayfaya gitmek, Geri butonu bir önceki ziyaret edilen sayfaya gitmek, İleri butonu ise geri butonuna basılmasıyla terk edilen bir önceki sayfaya gitmek için kullanılacaktır. Tasarım dosyasının ardından MainActivity.java kaynak dosyamızı da aşağıda gösterilen şekliyle düzenliyoruz. MainActivity.java 1 public class MainActivity extends Activity implements View.OnClickListener { 2 WebView webview; 3 EditText url; 4 Button search; 5 Button back; 6 Button forward; 7 String newurl; 8 9 @Override 10 protected void oncreate(bundle savedinstancestate) { 11 super.oncreate(savedinstancestate); 12 setcontentview(r.layout.activity_main); 13 14 search = (Button) findviewbyid(r.id.search); 15 back = (Button) findviewbyid(r.id.back); 16 forward = (Button) findviewbyid(r.id.forward); 17 url = (EditText) findviewbyid(r.id.url); 18 19 search.setonclicklistener(this); 20 back.setonclicklistener(this); 21 forward.setonclicklistener(this); 22 23 webview = (WebView) findviewbyid(r.id.webview); 24 webview.getsettings().setjavascriptenabled(true); 25 loaddefaultpage(); 26 27 } 28 29 public void loaddefaultpage()