Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım...

36
Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından geliştirilen, Linux tabanlı, mobil cihaz ve cep telefonları için geliştirilmekte olan, açık kaynak kodlu bir mobil işletim sistemidir. Android, aygıtların fonksiyonelliğini genişleten uygulamalar yazan geniş bir geliştirici grubuna sahiptir. Android için halihazırda 250,000'den fazla uygulama bulunmaktadır. Google Play ise, Android işletim sistemi uygulamalarının çeşitli sitelerden indirilebilmesinin yanısıra, Google tarafından işletilen kurumsal uygulama mağazasıdır. Geliştiriciler, ilk olarak aygıtı, Google'ın Java kütüphanesi aracılığıyla kontrol ederek Java dilinde yazmışlardır. Open Handset Allience, 5 Kasım 2007'de Android'i kurduğunu duyurmuştur ve ardından 34 adet donanım, yazılım ve telekom şirketi, mobil cihazlar için telif hakkı olmayan bir işletim sisteminin teknolojinin gelişimi için yararlı olduğu konusunda hemfikir olmuşlardır. 2008'de piyasaya sürüldüğünde, birçok Android İşletim Sistemi Apache free- software ve Açık Kaynak Kodu lisansıyla geliştirilmeye açık hale gelmiştir. Android, linux çekirdeği üzerine inşa edilmiş bir mobil işletim sistemidir, bu sistemde ara katman yazılımı, kütüphaneler ve API C diliyle yazılmıştır. Uygulama yazılımları ise, Apache harmony üzeri ne kurulu java-uyumlu kütüphaneler ihtiva eden uygulama iskeleti üzerinden çalışır. Android, derlenmiş java kodunu çalıştırmak için dinamik çevirmeli (JIT) Dalvik sanal makinasını kullanır ve cihazların fonksiyonerliğini artıran uygulamaların geliştirilmesi için çalışan geniş bir programcı-geliştirici çevresine sahiptir. Google'ın Android Inc şirketini alışı Temmuz 2005'te Google, Android Inc.'i almış ve ufak bir başlangıç şirketini Palo Alto'da kurmuştur. Android'in kurucuları, Google'a çalışmak için gi den Andy Rubin (Danger'in kurucusu), Rich Miner (WildFire'ın kurucusu), Nick Sears ve Chris White'dır. (WebTV'de çalışan ilk mühendislerden biri). Bu arada, Android Inc.'in işlevleri daha önce yaptıkları mobil işletim sistemleri kadar iyi bilinmemektedir ve bu da Google'ın Mobil

Transcript of Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım...

Page 1: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Android Nedir?

Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından geliştirilen,

Linux tabanlı, mobil cihaz ve cep telefonları için geliştirilmekte olan, açık kaynak kodlu bir mobil

işletim sistemidir. Android, aygıtların fonksiyonelliğini genişleten uygulamalar yazan geniş bir

geliştirici grubuna sahiptir. Android için halihazırda 250,000'den fazla uygulama

bulunmaktadır. Google Play ise, Android işletim sistemi uygulamalarının çeşitli sitelerden

indirilebilmesinin yanısıra, Google tarafından işletilen kurumsal uygulama mağazasıdır.

Geliştiriciler, ilk olarak aygıtı, Google'ın Java kütüphanesi aracılığıyla kontrol ederek Java

dilinde yazmışlardır. Open Handset Allience, 5 Kasım 2007'de Android'i kurduğunu

duyurmuştur ve ardından 34 adet donanım, yazılım ve telekom şirketi, mobil cihazlar için telif

hakkı olmayan bir işletim sisteminin teknolojinin gelişimi için yararlı olduğu konusunda hemfikir

olmuşlardır. 2008'de piyasaya sürüldüğünde, birçok Android İşletim Sistemi Apache free-

software ve Açık Kaynak Kodu lisansıyla geliştirilmeye açık hale gelmiştir. Android, linux

çekirdeği üzerine inşa edilmiş bir mobil işletim sistemidir, bu sistemde ara katman yazılımı,

kütüphaneler ve API C diliyle yazılmıştır. Uygulama yazılımları ise, Apache harmony üzerine

kurulu java-uyumlu kütüphaneler ihtiva eden uygulama iskeleti üzerinden çalışır. Android,

derlenmiş java kodunu çalıştırmak için dinamik çevirmeli (JIT) Dalvik sanal makinasını kullanır

ve cihazların fonksiyonerliğini artıran uygulamaların geliştirilmesi için çalışan geniş bir

programcı-geliştirici çevresine sahiptir.

Google'ın Android Inc şirketini alışı

Temmuz 2005'te Google, Android Inc.'i almış ve ufak bir

başlangıç şirketini Palo Alto'da kurmuştur. Android'in kurucuları, Google'a çalışmak için giden

Andy Rubin (Danger'in kurucusu), Rich Miner (WildFire'ın kurucusu), Nick Sears ve Chris

White'dır. (WebTV'de çalışan ilk mühendislerden biri). Bu arada, Android Inc.'in işlevleri daha

önce yaptıkları mobil işletim sistemleri kadar iyi bilinmemektedir ve bu da Google'ın Mobil

Page 2: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Cihazlar pazarına gireceği söylentisini başlatmıştır. Buna karşın, bu süreç içinde pazara ne

çeşit ürünle çıkacakları tam olarak belli olmamıştır. Google'da, ekip (Rubin tarafından izin

verilen) Linux tabanlı, taşınabilir cihazlar için geliştirdikleri, esnek, güncelleştirilebilir İşletim

Sistemini yazmışlardır. Raporlara göre Google çoktan donanım serilerini, yazılım partnerlerini

ve taşınabilir cihazlarda çeşitli derecelerde birlikte çalışacağı sinyalini vermiştir.

Android'in Gelişimi

Google, Android'i satın aldıktan sonra telefon üreticilerini yanına alarak Open Handset Alliance

(OHA) birliğini kurdu. Android'in gelişimi OHA eliyle yönetilmeye başlandı.

Android 1.0 HTC Dream'in işletim sistemi olarak telefonlara ilk adımını attı.Bu sürüm; kamera

desteği Wi-Fi, bluetooth, klasörler, bir web tarayıcısı, uyarılar, sesli arama, YouTube, alarmlı

saat, galeri gibi özellikler sunuyordu.

9 Şubat 2009 da Android 1.1 yayınlandı.Bu sürüm bir önceki sürümdeki sistem hatalarını

düzeltmeyi ve API'yı geliştirmeyi amaçlıyordu.

30 Nisan 2009'da Android 1.5 [Cupcake) yayınlandı.Bluetooth desteği, kamera kaydı, video

gösterimi, Picasa,sık kullanılan klasör ve widgetları kişiselleştirebilme, yazı tahmin edebilen

klavye ve animasyonlu ekran özellikleri Android'e kazandırıldı.

15 Eylül 2009'da Android 1.6 (Donut) yayınlandı.Ekran çözünürlüğü yükseltildi. Doğru çeviri

yapma ve okutma özelliği,geliştirilmiş android market,galeride çoklu silme, sesli arama, WVGA

ekran çözünürlük desteği Android'e kazandırıldı.

29 Ekim 2009'da Android 2.0 ve 2.1 (Eclair) yayınlandı. HTML 5 ve Bluetooth 2.1 desteği

kazandırıldı. Sanal klavye ve yüksek ekran çözünürlüğü desteği ile özelleştirilebilen arayüz

özelliği eklendi. Geliştirilmiş Google Maps, hareketli duvar kağıtları ve dijital zoom özelliği de

kazandırıldı.

Mayıs 2010'da Android 2.2 (Froyo) yayınlandı. 720p ekran çözünürlüğü desteği,usb

bağlantı,Wi-Fi tarayıcı özelliği,Flash Player 10.1 desteği eklendi.

Şubat 2011'de Android 2.3 (Gingerbread) yayınlandı. Çoklu kamera ve çoklu dokunmatik

desteği eklendi. XGA (1366×768) ekran çözünürlük desteği,video arama özelliği eklendi.

Yine Şubat 2011'de Android 3.0 (Honeycomb) yayınlandı. Android işletim sistemi, tabletlerle

uyumlu hale getirildi.

Ekim 2011'de Android 4.0 (IceCream Sandwich) yayınlandı.Yüz tanıma fonksiyonları ve NFC

ile dosya paylaşımı özellikleri eklendi.

Mart 2012'de Android Market'in adı Google Play olarak değiştirildi.

Temmuz 2012'de 4.1 (Jelly Bean) yayınlandı. Aynı anda iki uygulama açma özelliği Android'e

kazandırıldı. Butter project(takılmadan kayan ekran) ve enerji verimliliği sağlandı.

Page 3: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Ekim 2012'de 4.2 (Jelly Bean Plus) yayınlandı.Çoklu kullanıcı,360 derece panoramik

fotoğraf,Swype klavye kazandırıldı.

11 Şubat 2013'te 4.2.2 (Jelly Bean Plus) yayınlandı.bu güncelleme "performansı ve kararlılığı

artırır" temasıyla çıkarıldı.Isınma ve donma problemleri giderildi.

24 Temmuz 2013'te 4.3 (Jelly Bean) yayınlandı.Çoklu kullanıcı için ebeveyn kontrolü,oyunlar

için OpenGL ES 3.0 desteği,diğer teknolojik aletlere bağlanmak için ilk akıllı bluetooth

teknolojisi,Wifi'yı açıp kapatmak yerine otomatik açılıp kapanabilen akıllı wifi teknolojisi

eklendi.

Bölümleri

Android işletim sistemi beş kısımdan oluşur.

Çekirdek:Linux kernelidir. Güvenlik, hafıza yönetimi, süreç yönetimi, ağ yığınları ve sürücü

modellerini içerir.

Android Runtime: Sanal makinedir. Dalvik Sanal Makinesini de içerir.

Kütüphaneler: Veritabanı kütüphaneleri, web tarayıcı kütüphaneleri, grafik ve arayüz

kütüphanelerini içerir.

Uygulama Çatısı: Uygulama geliştiricilere geniş bir platform sunan kısımdır.

Uygulama Katmanı: Doğrudan Java (programlama dili) yle geliştirilmiş uygulamaları içerir.

Geliştirme

12 Kasım 2007'de OHA, Android'in yazılım geliştirme teçhizatının önizlemesini yayınlamıştır

ve bu önizleme, geliştirici ve hata giderici, kütüphane setleri, aygıt emülasyonu,

dökümantasyon, örnek tasarılar, eğitim, SSS ve fazlasını içermektedir. Geliştiriciler, eğer

Windows XP, Vista veya Mac OS çalıştıran x86 tabanlı ya da Linux kullanıyorlarsa Android-

SDK'yı indirip kurmaları gerekmektedir. Gereklilikler şunları da kapsamaktadır:

Java Development Kit

Apache Ant

Python 2.2 veya yüksek versiyonu

Eclipse (yazılım) 3.2 veya yüksek versiyonu

Özellikler

Android'in son sürümleri, çoklu-görev

(multitasking), çoklu-dokunuş (multitouch) ve Flash desteğiyle beraber gelmektedir. Android

Market ile uygulamalar yüklenebilmektedir. Handset Çizimler Sistem, VGA, 2D grafik arşivler,

OpenGL ES 3.0 tabanlı 3D Grafik arşivlerine ve geleneksel telefon çıkışlarına son derece kolay

Page 4: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

uyum sağlar. Depolama Bilgi: depolama amaçlı SQLite kullanılmaktadır. Bağlanabilirlik:

Android, GSM, Bluetooth, EDGE, 3G, NFC ve Wi-Fi bağlantısını destekler. Mesajlaşma: Hem

SMS hem de MMS desteği vardır. Web Tarayıcısı: Android'in web tarayıcısı açık kaynak kodlu

WebKit application framework üzerine kuruludur. Medya Destekleri: Android, MPEG-4, MP4,

H.264, MP3, ve AAC, AMR, JPEG, PNG, GIF gibi ses/video/resim formatlarını

desteklemektedir. Ek Donanımları: Android, anti-titremeli video/foto kameraları,

touchscreenler, GPS, pusulalar, accelerometrelerde son derece yeteneklidir.

Android SDK ve Eclipse ADT Kurulumu – Ayrıntılı Anlatım Video Olarak Android ve Sdk Kurulumu: Aşağıdaki Linki Kullanarak Adım Adım Android Kurulumu Gerçekleştirebilirsiniz. http://www.youtube.com/watch?v=buGXaLNE4vw Bilgisayarınızda JDK kurulu değilse, JDK indirip bilgisayarınıza kurmanız gerekir. Kurulum için http://java.sun.com/javase/downloads/index.jsp adresinden JDK indirilip kurulur. Kurulum yapılmazsa hatayla karşılaşılır. Sadece bilgisayarınızda JRE kurulu olması Android için yeterli değildir. JDK kurulumundan sonra SDK’nın kurulması gerekiyor. Bunun için Android SDK sayfasına gidilmesi gerekiyor. http://developer.android.com/sdk/index.html adresinden indirebilirsiniz. Recommended olan indirilirse, direk olarak exe dosyasından kurarsınız. C:\Program Files\Android\android-sdk-windows klasörü içine kuracaktır.

Bu iki kurulumdan sonra Eclipse programının indirilmesi ve kurulması gerekir. Eclipse programınıhttp://www.eclipse.org/downloads/packages/eclipse-classic-372/indigosr2adresinden indirebilirsiniz. ZIP dosyasını programı çalıştırmak istediğiniz bir yere açınız. Eclipse programı kuruluma ihtiyaç duymaz, zaten kurulu olarak Eclipse isimli klasörde yer alır. Programı çalıştırmak için eclipse.exe tıklanır. Program açıldıktan sonra Eclipse’a ADT kurulumu yapılması gerekiyor. Böylece Android menü içerisinde görülebilecektir. ADT kurulumu için Help -> Install New Software seçeneği seçilir ve Work with kısmına http://dl-ssl.google.com/android/eclipse/ linki eklenir. Add tıklanarak açılan pencerede “Location” sekmesine de aynı adres yapıştırılır. “Name” kısmı önemli değildir. Yüklemeler tamamlandıktan sonra Eclipse programına Android eklenmiş olacaktır.

Page 5: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Son adım olarak Android kütüphanelerinin tanıtılması gerekiyor. SDK yolunu (C:\Program Files\Android\android-sdk-windows) “Windows -> Preferences” seçeneğinde Android sekmesini seçerek “SDK Location” bölümüne yapıştırılır.

İlk Android Uygulaması

Merhaba Dünya Programı

Öncelikle bir Android projesi açıp projemizin dosyalarını tanımaya başlayalım.

Eclipse’yi çalıştıralım. İlk çalıştırdığımızda bizden projelerimizi kaydetmemiz için klasör konumunu

isteyecek. Değişiklik yapmazsak yeni projelerimiz default klasöre kaydedilecektir.

• New Project alanından bir adet yeni proje açıyoruz.

• Proje ismimizi Merhaba olarak belirtip Next diyoruz.

Application Name: Uygulamanızın ismidir. Play Store’da ve Ayarlar altındaki Uygulama Listesinde bu

isim kullanılır.

Project Name: Proje dosyasının ismidir. Sadece Eclipse tarafından kullanılır. Workspace içerisinde

benzersiz olmalıdır. Genelde Application Name ile aynı verilir.

Package Name: Kullanılan java paketinin gösterir.

Minimum Required SDK: Uygulamanın çalışacağı minimum Android SDK sürümüdür. Uygulamanız

daha alt sürümlerde çalışmaz. Örnekte seçilen API 8 seviyesi markette bulunan telefonların ve

tabletlerin %90’ından fazlasını destekleyeceğiniz anlamına gelir.

Target SDK: Uygulamanızı geliştirdiğiniz esas Android SDK sürümüdür.

Compile With: Uygulamanızı derleyeceğiniz sürüm bilgisidir.

Theme: Uygulama için seçilecek temel temadır.

Page 6: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Daha sonra açılan pencerede Android 4.0.3 seçip devam ediyoruz. (2.1 de seçilebilir örneğin size

bağlı)

Sonraki pencerese Package Name veriyoruz. Bu isim unique bir değer olmalıdır. Genellikle url’ler ters

yazılarak belirlenir. com. merhaba şeklinde. Next deyip yeni projemizi açmış oluyoruz.

Sol kısımda Package Explorer kısmında projemizin dosyalarını görebiliyoruz.

Bu dosyaları tanıyalım:

src klasörü: Uygulamamızın kaynak kodlarını içerir. Burada bulunan kaynak dosyamız editörün bizim

için yaratmış olduğu java uzantılı dosya.

gen klasörü: Burada bir R.java dosyası yer almaktadır. Biz uygulamamıza yeni kaynaklar ekledikçe bu

dosya kendiliğinden otomatik olarak güncellenecektir. R sınıfını uygulamayı yazarken kullanırız.

assets: Uygulamamız ile birlikte paketlenmesini istediğiniz dosyaları koymamız gereken klasör.

res: içerisinde çok sayıda klasör barındırıyor. Buradaki layout’un altındaki main.xml projenin grafiksel

görünümünü ve kod kısmını içerir. values klasörünün altında bulunan strings.xml dosyasında

stringlerimizi belirleyebiliyoruz.

AndroidManifest.xml: Uygulama ve bileşenlerinin tanımlandığı XML dosyasıdır.

project.properties Projenin özellik dosyasıdır.

Merhaba Dünya uygulamasını yazmaya hazırız:

Package Explorer penceresine genel bir bakış attıktan sonra values klasörünün altında bulunan

strings.xml dosyasına tıklayalım. Kod kısmına aşağıdaki kodu yazıp kaydedelim:?

<string name="text">Tıkla</string>

Daha sonra main.xml dosyamızı açacağız. Grafik sekmesinde sol bölümde uygulamamıza dahil

edeceğimiz kontrollerimizi göreceğiz. Form Widgets kısmından bir adet Button’u sürükleyip

bırakıyoruz. Kod kısmına geçiyoruz. Kodlarımızın görünümü aşağıdaki şekildedir:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<Button

android:id="@+id/button1"

Page 7: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Button" />

</LinearLayout>

Butonun layout_width özelliğini değiştirelim:

android:layout_width="fill_parent"

Bunu buton tüm ekranı kaplasın diye yaptık.

android:text="@string/text" />

Bunu yazarak butonun textini değiştiriyoruz. Direk görüntülenmesini istediğimiz metni yazarsak uyarı

alırız, doğru olan bu şekilde string tanımlayarak sonra bu stringi butonun textine vermek.

Grafik arayüz kısmında butona sağ tıklayıp Show In – Properties seçersek sağda kontrolümüzün

özellik ve olaylarını gösteren bir pencere açılacak. Buraya kadar buton ekleyip butonun textini

değiştirdik. Sıra geldi bu butona tıkladığımızda ekrana “Merhaba Dünya” yazdırmaya

Button Properties penceresinden Onlick kısmına MerhabaClick yazalım. Daha sonra src klasörünün

altında bulunan java dosyasını açalım. İlk hali bu şekilde olacak.

package com.yazilimciblog.merhaba;

import android.app.Activity;

import android.os.Bundle;

public class MerhabaActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}

Buraya öncelikle metodumuzu yazacağız.

public void MerhabaClick(View v)

Page 8: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

{

}

şeklinde olacak. ctrl+shift+o ile import android.view.View; ekleyeceğiz. Daha sonra scope alanına

yazalım:

public void MerhabaClick(View v)

{

Toast.makeText(getApplicationContext(), "Merhaba Dünya", Toast.LENGTH_LONG).show();

}

Kaydedip uygulamayı emulatorde çalıştıralım. Bunun için üst kısımda bulunan yeşil Run tuşuna

basıyoruz.

İlk uygulamamız bu kadar. Butona basıldığında başarı ile ekrana “Merhaba Dünya” yazdırmış olduk.

Subactivities örneği :

Bu örneğimizde activities ler arasındaki erişimi gösteriyoruz

3 adet java classımız var ve 3 adet te layout umuz yani görünümüz var.

Baslangic. Java

package com.example.subactivities;

import android.support.v7.app.ActionBarActivity;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Toast;

public class Baslangic extends ActionBarActivity {

private static final int CEVAP_SORGULA = 0;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_baslangic);

}

Page 9: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

public void degistirActivity(final View view){

switch(view.getId()){

case R.string.sf_subactivity:

startActivity(new Intent(this,SubActivity.class));

break;

case R.string.sf_subactivity_cevap :

startActivityForResult(new

Intent(this,SubActivityCevap.class),CEVAP_SORGULA);

break;

}

}

protected void onActivityResult(int requestcode, int

resultCode, Intent data){

if(resultCode == Activity.RESULT_OK && requestcode ==

CEVAP_SORGULA){

Toast.makeText(this, "Cevabınız :", +

Toast.LENGTH_SHORT).show();

}

super.onActivityResult(requestcode, resultCode, data);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if

it is present.

getMenuInflater().inflate(R.menu.baslangic, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar

will

// automatically handle clicks on the Home/Up button, so

long

// as you specify a parent activity in

AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

}

Burada yapılan işlem :

Page 10: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

public void degistirActivity(final View view){ switch(view.getId()){ case R.string.sf_subactivity: startActivity(new Intent(this,SubActivity.class)); break; case R.string.sf_subactivity_cevap : startActivityForResult(new Intent(this,SubActivityCevap.class),CEVAP_SORGULA); break;

metodu ile gerçekleşmektedir. Değiştriactivity metodu activity ler arasında geçiş yapmamızı sağlar. Dikkat edersek switch bloğunun içinde sf_subactiviy ve sf_subactivitycevap layout larımıza erişim sağlamış olduk. Yani başlangıc layout üzerinde değiştiractivity metodu ile diğer iki layout a geçiş yapabildik.

Subactivity.java

package com.example.subactivities;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

public class SubActivity extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.subactivity);

}

public void cevapVer(final View view){

final Intent intent = new Intent();

intent.putExtra("Cevap", 55);

setResult(RESULT_OK,intent);

finish();

}

}

Burada yapılan işlem ise cevapver metodu ile cevap ver subactivity layout undna bulunan butonuno basıldığında ne iş yapılacağı anlatıldı.

Subactivitycevap.java

package com.example.subactivities;

Page 11: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

public class SubActivityCevap {

}

Layout larımız aşağıdaki gibidir : yani ekran görünümlerimiz.

Activity_main.xml

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.example.subactivities.Baslangic" >

<Button

android:id="@+id/button1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"

android:layout_marginLeft="26dp"

android:layout_marginTop="14dp"

android:text="@string/sf_subactivity"

android:onClick="degistirActivity" />

<Button

android:id="@+id/button2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button1"

android:layout_below="@+id/button1"

android:layout_marginTop="26dp"

android:text="@string/sf_subactivity_cevap"

android:onClick="degistirActivity" />

</RelativeLayout>

Bakarsak başlangıç ekranımızda 2 adet butonumuz var. Bunların id leri button 1 ve button 2 dir. Aynı zaman da button içinde yazılacak olan metin android:text="@string/sf_subactivity"

android:text="@string/sf_subactivity_cevap"

kodlarıyla string.xml dosyası içinde belirtilmiştir. String.xml

dosyasında baktığımızda buttonların string değerleri içinde hangi

değerin yazıcağını görebiliriz.

Page 12: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Subactivity.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/tx_subactivity" />

</LinearLayout>

Subactivity görünümünde 1 adet textview vardır. Ve aynı button larda olduğu gibi bu textview içinde

ne yazılacağı android:text="@string/tx_subactivity" ile string.xml dosyasında görülmektedir.

Subactivitycevap.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/tx_subactivity_cevap" />

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/sf_subactivity_cevap_ver"

android:onClick="cevapVEr" />

</LinearLayout>

Bu görünümde 1 textview ve 1 button bulunmaktadır. Aynı süreçler bu layout içinde geçerlidir.

Şimdi string.xml dosyasına bakalım. Bütün form elemanlarının string değerleri bu xml dosyamız

içerisindedir.

<?xml version="1.0" encoding="utf-8"?>

<resources

xmlns:android="http://schemas.android.com/apk/res/android">

<string name="app_name">SubActivities</string>

<string name="sf_subactivity">Sub Activity Cagır</string>

Page 13: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

<string name="tx_subactivity">Sub Activity içindesiniz</string>

<string name="sf_subactivity_cevap">Sub Activity

Sorgula</string>

<string name="tx_subactivity_cevap">Hayırdır Genç???</string>

<string name="sf_subactivity_cevap_ver">Cevap Ver</string>

<string name="action_settings">Settings</string>

</resources>

Ekran görünümleri

Hesap makinesi programı

MainActivity.java

package com.example.calculator;

import android.support.v7.app.ActionBarActivity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

final EditText sayi1 = (EditText)findViewById(R.id.sayi1);

final EditText sayi2 = (EditText)findViewById(R.id.sayi2);

final TextView sonuc = (TextView)findViewById(R.id.sonuc);

Page 14: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Button topla = (Button)findViewById(R.id.btntopla);

Button cıkar = (Button)findViewById(R.id.btncikar);

Button carp = (Button)findViewById(R.id.btncarp);

Button bol = (Button)findViewById(R.id.btnbol);

Button yuzde =(Button)findViewById(R.id.btnyuzde);

Button temizle = (Button)findViewById(R.id.btntemizle);

topla.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

float sayi1float =

Float.parseFloat(sayi1.getText().toString());

float sayi2float =

Float.parseFloat(sayi2.getText().toString());

sonuc.setText(String.valueOf(sayi1float+sayi2float));

}

});

cıkar.setOnClickListener(new View.OnClickListener() {

public void onClick(View v)

{

float sayi1float =

Float.parseFloat(sayi1.getText().toString());

float sayi2float =

Float.parseFloat(sayi2.getText().toString());

sonuc.setText(String.valueOf(sayi1float-

sayi2float));

}

});

carp.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

float sayi1float =

Float.parseFloat(sayi1.getText().toString());

float sayi2float =

Float.parseFloat(sayi2.getText().toString());

sonuc.setText(String.valueOf(sayi1float*sayi2float));

}

});

bol.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Page 15: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

// TODO Auto-generated method stub

float sayi1float =

Float.parseFloat(sayi1.getText().toString());

float sayi2float =

Float.parseFloat(sayi2.getText().toString());

sonuc.setText(String.valueOf(sayi1float/sayi2float));

}

});

yuzde.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

float sayi1float =

Float.parseFloat(sayi1.getText().toString());

float sayi2float =

Float.parseFloat(sayi2.getText().toString());

sonuc.setText(String.valueOf(sayi1float*sayi2float/100));

}

});

temizle.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

sayi1.getText().clear();

sayi2.getText().clear();

sonuc.setText(" ");

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it

is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so

long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

Page 16: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

}

return super.onOptionsItemSelected(item);

}

}

Oncreate metodunda butonlar textview lar ve sonuç etiketlerinmizin tanımlanmalarını yapıyoruz.

Ve bunları final EditText sayi1 = (EditText)findViewById(R.id.sayi1); Ile layout da eklediğimiz form elemanlarını findviewbyid diyerek eşleştirmesini yapıyoruz

topla.setOnClickListener(new View.OnClickListener() ile topla işlmeninde neler yapılacağını

belirtiyoruz. Bu işlemler çıkarma, bölme çaprma temizle işlemleri içinde geçerlidir.

Ve bundan sonra da her seferinde

public void onClick(View v)

metodu override edilip bu işlemler için hangi fonksiyonların kullanıcağını belirliyoruz.

Ekran görünümünü Inceleyelim

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.example.calculator.MainActivity" >

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"

android:layout_marginLeft="28dp"

android:layout_marginTop="21dp"

android:text="@string/birinciSayi"

android:textAppearance="?android:attr/textAppearanceLarge"

/>

<EditText

android:id="@+id/sayi1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView1"

Page 17: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

android:layout_below="@+id/textView1"

android:layout_marginTop="21dp"

android:ems="10"

android:text="@string/sayi1">

<requestFocus />

</EditText>

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/sayi1"

android:layout_below="@+id/sayi1"

android:layout_marginTop="18dp"

android:text="@string/ikinciSayi"

android:textAppearance="?android:attr/textAppearanceLarge"

/>

<EditText

android:id="@+id/sayi2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView2"

android:layout_below="@+id/textView2"

android:ems="10"

android:text="@string/sayi2" />

<Button

android:id="@+id/btntopla"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_centerVertical="true"

android:layout_marginLeft="20dp"

android:text="@string/topla" />

<Button

android:id="@+id/btncikar"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/btntopla"

android:layout_alignBottom="@+id/btntopla"

android:layout_marginLeft="14dp"

android:layout_toRightOf="@+id/btntopla"

android:text="@string/cikar" />

<Button

android:id="@+id/btnyuzde"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/btncikar"

android:layout_below="@+id/btncikar"

android:text="@string/yuzde" />

<Button

Page 18: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

android:id="@+id/btntemizle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/btnyuzde"

android:layout_alignBottom="@+id/btnyuzde"

android:layout_alignLeft="@+id/btncarp"

android:text="@string/temizle" />

<Button

android:id="@+id/btncarp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_above="@+id/btnyuzde"

android:layout_marginLeft="15dp"

android:layout_toRightOf="@+id/btnyuzde"

android:text="@string/carp" />

<Button

android:id="@+id/btnbol"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_above="@+id/btntemizle"

android:layout_marginLeft="20dp"

android:layout_toRightOf="@+id/btntemizle"

android:text="@string/bol" />

<TextView

android:id="@+id/sonuc"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/sayi2"

android:layout_below="@+id/btnyuzde"

android:layout_marginTop="21dp"

android:text="@string/sonuc" />

</RelativeLayout>

String.xml dosyamıza göz atalım

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">Calculator</string>

<string name="hello_world">Hello world!</string>

<string name="action_settings">Settings</string>

<string name="birinciSayi">Birinci Sayıyı Giriniz</string>

<string name="ikinciSayi">İkinci Sayıyı Giriniz</string>

<string name="sayilar"></string>

<string name="topla">+</string>

<string name="bol">/</string>

<string name="carp">*</string>

<string name="yuzde">%</string>

<string name="temizle">C</string>

<string name="sonuc">sonuc :</string>

<string name="sayi1"></string>

<string name="sayi2"></string>

Page 19: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

<string name="cikar">-</string>

</resources>

Var olan tek layout un görünümü de aşağıdaki gibdir.

BasitForm Örneği

2 adet java classımız var

Birtanesi book java adından bilgileri tutun class. Diğer main classımız da işlemleri yapan class tır. Aynı

zamanda book class ına da erişim sağlayabilir.

Page 20: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Book. Java

package com.example.basitform;

public class Book {

private String isim="";

private String soyisim="";

public String getName(){

return isim;

}

public void setName(String isim){

this.isim= isim;

}

public String getSoyisim(){

return soyisim;

}

public void setSoyisim(String Soyisim){

this.soyisim= soyisim;

}

}

BasitFormActivity.Java

package com.example.basitform;

import android.support.v7.app.ActionBarActivity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

public class BasitFormActivity extends ActionBarActivity {

Book b = new Book();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_basit_form);

Button kaydet = (Button)findViewById(R.id.button1);

kaydet.setOnClickListener(onSave);

}

private View.OnClickListener onSave = new View.OnClickListener()

{

@Override

public void onClick(View v) {

Page 21: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

// TODO Auto-generated method stub

EditText isim =

(EditText)findViewById(R.id.editText1);

EditText soyisim =

(EditText)findViewById(R.id.editText2);

b.setName(isim.getText().toString());

b.setName(soyisim.getText().toString());

}

};

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it

is present.

getMenuInflater().inflate(R.menu.basit_form, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so

long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

}

Button kaydet = (Button)findViewById(R.id.button1); kaydet.setOnClickListener(onSave);

işlemi ile buttuon 1 kaydetme işlemi yapar. SetOnClickListener buton a basılınca ne yapılacağını

belirler. Burda onSave metodu buton a basılınca çalışacaktır. Yani setOnClickListener hangi metodu

çalıştıracağını belirtiyor.

Burada yaptığımız işlem;

Activity çalıştığında kitap sınıfından bir nesne yarattık.

Buton nesnemizi findViewById() metodu ile tasarım bölümünde yarattığımız butona bağladık ve

listener ile butona tıklandığında yapacağı işleri belirledik.

Listener içinde ise iki tane editText i yine findViewById ile tasarımdaki editText ler ile bağladık. Daha

sonra bu iki editText içerisindeki değerleri model nesnemiz olan kitap içine yazdık.

Page 22: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Basit form uygulamamız bu kadar, Eğer uygulamanızın ikonunu değiştirmek istiyorsanız. 48×48 pixellik bir

resim bulup, bu resmi drawable/ altına attıktan sonra AndroidManifest.xml dosyamızda

“android:icon=”@drawable/ic_launcher” bölümündeki ic_launcher bölümünü kendi resim dosyanız ile

değiştirmeniz gerekiyor.

Activity_basit_form.xml

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.example.basitform.BasitFormActivity" >

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/isim" />

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView2"

android:layout_below="@+id/textView2"

android:layout_marginTop="26dp"

android:text="@string/soyisim" />

<EditText

android:id="@+id/editText1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/textView2"

android:layout_alignBottom="@+id/textView2"

android:layout_toRightOf="@+id/textView1"

android:ems="10"

android:text="@string/edtisim" >

<requestFocus />

</EditText>

<EditText

android:id="@+id/editText2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/textView1"

Page 23: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

android:layout_alignBottom="@+id/textView1"

android:layout_centerHorizontal="true"

android:ems="10"

android:text="@string/edtsoyisim" />

<Button

android:id="@+id/button1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/editText2"

android:layout_marginTop="51dp"

android:layout_toRightOf="@+id/textView2"

android:text="@string/btnkaydet" />

</RelativeLayout>

burada 3 satırlık form elde ettik. İlki kitap ismi, ikincisi yazarı ve üçüncüsü de kaydet butonu olacak.

Şimdi programımızı Android Application olarak çalıştıralım. Eğer daha önceden emülator eklemediyseniz.

Window->AVD Manager bölümünden ekleyebiliriz. New dedikten sonra Name bölümüne emülator ismi,

target bölümüne emülatorun çalışacağı android sürümü, ve gerekli alanları doldurduktan sonra Edit AVD

diyebiliriz.

String.Xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">BasitForm</string>

<string name="hello_world">Hello world!</string>

<string name="action_settings">Settings</string>

<string name="isim">isim :</string>

<string name="soyisim">soyisim :</string>

<string name="edtisim"></string>

<string name="edtsoyisim"></string>

<string name="btnkaydet">Kaydet</string>

</resources>

Page 24: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Android ile Sesi Yazıya Çevirme

Bu çevrimde asıl işi yapacak olan RecognizerIntent intent’idir. Uygulama

başladığındaRecognizerIntent.ACTION_RECOGNIZE_SPEECH intentini ses tanıma işlemi (action)

Page 25: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

yapacak şekilde tetikleyecek. Tetiklenen INTENT kullanıcıdan birşeyler söylemesini bekler, kullanıcı

konuşup sustuktan sonra da konuştuklarının yazıya çevrilmiş haliniArray şeklinde bize verecektir.

Bu Array olası doğru sonuçları içeriyor, o nedenle kullanıcının asıl demek istediği Array’ın herhangi bir

elemanı olabilir fakat; daha çok baştaki elemanlar asıl demek isteneni içerir. Uygulamamızda bütün

elemanları sınayacağız.

MainActivity.java dosyası içerisinde çevrim INTENT‘ini başlatan kod bloğu:

1

2

3

4

5

6

7

private void CeviriBaslat() {

Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

i.putExtra(RecognizerIntent.EXTRA_LANGUAGE,

RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);

i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Haydi birşeyler söyle!");

startActivityForResult(i, check);

}

Başlattığımız INTENT’ten gelen sonuçları işleyeceğimiz metodumuz: onActivityResult(int

requestCode, int resultCode, Intent data) bu metod içerisinde sonuçları ListView‘e iliştiriyoruz.

Eğer kullanıcı “android evreni” demiş isehttp://www.androidevreni.com‘un açılmasını sağlıyoruz.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == check && resultCode == RESULT_OK) {

results = data

.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

lv.setAdapter(new ArrayAdapter<String>(this,

android.R.layout.simple_expandable_list_item_1, results));

// eğer android evreni demiş ise; android evrenine gitsin :). for (int i = 0; i < results.size(); i++) { if

(results.get(i).toLowerCase().equals("android evreni")) { String url = "http://www.androidevreni.com"; Intent ii = new

Intent(Intent.ACTION_VIEW); ii.setData(Uri.parse(url)); startActivity(ii); break; } }

}

}

Daha başka sınamalar yaparak uygulamanın başka işler de yapmasını sağlayabilirsiniz. Mesela Flash‘ı

açtırın, rehberdeki birilerini aratın, müzik çaldırın daha neler neler :).

Proje dosyalarının tam içeriği aşağıdaki gibidir.

activity_main.xml dosyası :

1

2

3

4

5

6

7

8

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

Page 26: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

<ListView

android:id="@+id/listView1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_weight="1" >

</ListView>

<Button

android:id="@+id/bCevir"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Konuş" />

</LinearLayout>

MainActivity.java dosyası:

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

package com.example.androidevrenisesceviryazi;

import java.util.ArrayList;

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.speech.RecognizerIntent;

import android.view.Menu;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.ListView;

public class MainActivity extends Activity {

int check = 1000;

ListView lv;

Button bCevir;

ArrayList<String> results;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

lv = (ListView) findViewById(R.id.listView1);

bCevir = (Button) findViewById(R.id.bCevir);

bCevir.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

CeviriBaslat();

}

});

CeviriBaslat();

}

private void CeviriBaslat() {

Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

Page 27: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

i.putExtra(RecognizerIntent.EXTRA_LANGUAGE,

RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);

i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Haydi birşeyler söyle!");

startActivityForResult(i, check);

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == check && resultCode == RESULT_OK) {

results = data

.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

lv.setAdapter(new ArrayAdapter<String>(this,

android.R.layout.simple_expandable_list_item_1, results));

}

// eğer android evreni demiş ise; android evrenine gitsin :).

for (int i = 0; i < results.size(); i++) {

if (results.get(i).toLowerCase().equals("android evreni")) {

String url = "http://www.androidevreni.com";

Intent ii = new Intent(Intent.ACTION_VIEW);

ii.setData(Uri.parse(url));

startActivity(ii);

break;

}

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

Android Titreşim Sınıfı ve Kullanımı

Merhaba, bu dersimizde Android teki ‘Vibrator’(titreştirici olarak Türkçeye çevirebiliriz) sınıfından bahsedicem ve uygulamalı bir örnek ile kullanımını anlatmaya çalışıcağım.

Vibrator Sınıfı

Bu sınıf cihazdaki titreştiriciyi çalıştırır. Eğer başlattığımız bir işlem biterse ya da bu işlemden çıkılırsa bu işlemle birlikte başlattığımız titreşim de duracaktır. Cihazdaki titreştiricinin durumunu öğrenmek için şu komutu kullanmamız yeterli olacaktır.

1 getSystemService(Context.VIBRATOR_SERVICE);

Android teki vibratöre ulaşabilmemiz için AndroidManifest.xml dosyasına şu izin kodunu eklememiz gerekir:

1 <uses-permission android:name="android.permission.VIBRATE"/>

Peki izin aldık, durumunu da sorduk, titreşimi nasıl başlatıcaz?

Page 28: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Titreşimi başlatmak için tek yapmanız gereken öncelikle bir Vibrator objesi oluşturmak sonra da ‘vibrate(süre)’ komutunu kullanmaktır. Süreyi ms cinsinden giriniz. Uygulama örneğimizi

kodlamaya başlayalım.

Öncelikle arayüzü tasarlayalım. Bir butonumuz ve altında da bir tane fotoğraf olsun. Arkaplan rengi griye yakın bir renk olsun. Bunlar için aşağıdaki koduactivity_main.xml dosyasına ekleyiniz.

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#d2d2d2"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

<Button

android:id="@+id/btn_titresim"

android:layout_width="120dp"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:layout_marginTop="10dp"

android:background="#1b8bb4"

android:onClick="baslat_fonk"

android:text="Titreşim"

android:textColor="#ffffff" />

<ImageView

android:id="@+id/imageView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/btn_titresim"

android:layout_centerHorizontal="true"

android:layout_marginTop="20dp"

android:src="@drawable/arkaplan" />

</RelativeLayout>

Burda kullandığım fotoğrafı kodları indir linkinden indirdiğiniz dosyada bulabilirsiniz.

Bu adımdan sonra AndroidManifest.xml dosyasına aşağıdaki izin kodunu ekliyoruz.

1 <uses-permission android:name="android.permission.VIBRATE"/>

Artık MainActivity.java dosyasının kodlarını yazmaya başlayabiliriz.

MainActivity.java kodlar:

1

2

3

4

5

6

7

8

9

10

11

package com.androidevreni.titresimandroid;

import android.os.Bundle;

import android.os.Vibrator;

import android.app.Activity;

import android.content.Context;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

public class MainActivity extends Activity {

Page 29: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button titrestir = (Button) findViewById(R.id.btn_titresim);

titrestir.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

vib.vibrate(500);

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

Titreşim kısmı için açıklamaları yazının başında yaptım. Buton ve ona ait

setOnClickListener metodunu daha önceki derslerimizde anlatmıştım. Kolay gelsin.

Seek Bar ve Kullanımı

Seekbar Nedir?

Seekbar aslında bir işlem çubuğunun(progress bar) biraz genişletilmiş halidir. Bir işlem

çubuğuna kaydırılabilir ya da sürüklenebilir bir nesne eklersek bir Seek bar elde etmiş oluruz.

Kullanıcı seek bar ın işlem seviyesini ve durumunu dokunma ile değiştirebilir. Bunların bir

max değeri olur, bu değeri geliştirici layout dosyasından belirleyebilir. Bu değerin değişimine

göre geliştirici uygulamasında yapmak istediği şeyleri yapar veya yaptırır.

Peki kullanıcı tarafından Seekbar ın işlem seviyesinini(level) değiştirildiğini nasıl anlayacağız?

Burda imdadımıza OnSeekBarChangeListener arayüzü yetişiyor. Bu arayüz progress

level(işlem seviyesi) değiştirildiğinde kod için bazı metodları çağırıcak, biz de bu metodlar

içinde çalıştırmak istediğimiz kodlarımızı çalıştırıcağız. Seekbar sınıfı ile ilgili daha ayrıntılı

bilgiye şu linkten ulaşabilirsiniz.

OnSeekBarChangeListener

Page 30: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

OnSeekBarChangeListener arayüzünün bu derste kullanacağımız 3 metodunun aşağıda

özetle ne işe yaradıklarını verdim.

Public Methods

abstract void

onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) Bu metod seek bar ın seviyesi değiştirildiğinde çağrılır.

abstract void

onStartTrackingTouch(SeekBar seekBar) Bu metod kullanıcı seek bar ın seviyesini değiştirmeye başladığı anda çağrılır.

abstract void

onStopTrackingTouch(SeekBar seekBar) Bu metod kullanıcı seek bar ı değiştirmeyi bıraktığı anda çağrılır.

OnSeekBarChangeListener arayüzü hakkında daha detaylı bilgiye buradanulaşabilirsiniz. Bu

gerekli açıklamalardan sonra artık uygulama örneğimize geçebiliriz.

Uygulama Örneği

Uygulama örneğimizde 3 tane seek bar kullanarak arkaplan rengini değiştirmeye çalışıcaz.

Seek barların her biri red, green ve blue renk kodlarından birini temsil edecek. Yani arkaplan

rengini değiştirmek için RGB kodu kullanacaz.

Arayüz

Uygulamamızın arayüzünde 3 tane seek bar olsun. Ve seek barların maksimum alabileceği

değer 255 olsun. Çünkü red,green ve blue renk kodları 0 ila 255 arasında değişir. Aşağıdaki

kodları alıp activity_main dosyanıza yapıştırın.

activity_main.xml dosyamız :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/myScreen"

>

<SeekBar

android:id="@+id/bar_red"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:max="255"

android:progress="0"/>

<SeekBar

android:id="@+id/bar_green"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

Page 31: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

19

20

21

22

23

24

25

26

27

android:max="255"

android:progress="0"/>

<SeekBar

android:id="@+id/bar_blue"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:max="255"

android:progress="0"/>

</LinearLayout>

Activity (Java Kodumuz)

Burada arayüze eklediğimiz seek barları tanımlayacaz. Seek barlara listener ekleyecez

ve seek barlardan herhangi biri değiştirildiğinde arkaplaniGuncelle() adlı

metodumuzu çağıracağız. Bu metodla seekbarların değerlerini alıp arkaplan rengini

değiştiricez.

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

package com.eeecoder.seekbackgroundcolor;

import android.os.Bundle;

import android.app.Activity;

import android.widget.LinearLayout;

import android.widget.SeekBar;

public class MainActivity extends Activity {

private int seekBarR, seekBarG, seekBarB;

SeekBar red_Bar, green_Bar, blue_Bar;

LinearLayout mScreen;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mScreen = (LinearLayout) findViewById(R.id.myScreen);

red_Bar = (SeekBar) findViewById(R.id.bar_red);

green_Bar = (SeekBar) findViewById(R.id.bar_green);

blue_Bar = (SeekBar) findViewById(R.id.bar_blue);

arkaplaniGuncelle();

red_Bar.setOnSeekBarChangeListener(seekBarChangeListener);

green_Bar.setOnSeekBarChangeListener(seekBarChangeListener);

blue_Bar.setOnSeekBarChangeListener(seekBarChangeListener);

}

private SeekBar.OnSeekBarChangeListener seekBarChangeListener

= new SeekBar.OnSeekBarChangeListener()

{

@Override

public void onProgressChanged(SeekBar seekBar, int progress,

boolean fromUser) {

// TODO Auto-generated method stub

arkaplaniGuncelle();

}

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

// TODO Auto-generated method stub

}

Page 32: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

// TODO Auto-generated method stub

}

};

private void arkaplaniGuncelle()

{

seekBarR = red_Bar.getProgress();

seekBarG = green_Bar.getProgress();

seekBarB = blue_Bar.getProgress();

mScreen.setBackgroundColor(

0xff000000

+ seekBarR * 0x10000

+ seekBarG * 0x100

+ seekBarB

);

}

}

Uygulama örneğimizin çalışması için herhangi bir izne gerek olmadığıdan

AndroidManifest.xml dosyasına herhangi bir izin eklemenize gerek yoktur.

AndroidManifest.xml 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

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.eeecoder.seekbackgroundcolor"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="18" />

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.eeecoder.seekbackgroundcolor.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

ListActivity ile Menü Oluşturma

ListActivity Nedir?

Page 33: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

ListActivity android te bulunan tamamen bir liste oluşturmak için kullanılan bir aktivitedir. Yapısında bir tane liste içerir. Bu liste komplex ve çok uzun olabilir, alt dallanmalar olabilir. Bu tamamen geliştiriciye kalmıştır.

Bu yüzden uygulamamızı kodlarken direk ListActivity ile extend edeceğiz. Bu bize direk olarak bir listeyi ve bu sınıfın içerdiği metodları kullanmamızı sağlayacak.

Array Nedir ?

Array dizi demektir, dizide bazı datalar saklayacağız. Bunlar herhangi bir sayı ya da bir karekter dizisi olabilir. Biz listemizin elemanlarını bir string array de saklayacağız.

ArrayAdapter Nedir?

ArrayAdapter Array deki elemanları listeye eklenecek şekilde adapte(uyumunu sağlar) eder.

ListAdapter Nedir ?

ListAdapter ArrayAdapter dan aldığı datayı/elemanları listeye ekler. Liste adaptörü setListAdapter komutu ile oluşturulur.

Evet bu kısa ve gerekli açıklamalardan sonra uygulamamızı kodlamaya geçebiliriz.

activity_main dosyamızda herhangi bir ek yapmamız gerek yoktur çünkü onu kullanmayacağız. Dediğim gibi ListActivity zaten yapısında bir listeyi taşıyor bu yüzden bizim ayrıca gui de yeni liste eklememize gerek yoktur.

MainActivity.java(bu arada bu tutorial için ben bu dosyaya Menu.java ismini verdim.) dosyasına yazmamız gereken kodlar aşağıda verilmiştir :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

package com.androidevreni.listviewtutorial;

import android.app.ListActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;

public class Menu extends ListActivity {

String sehirler[] = {"İzmir","Şanlıurfa","Ankara","İstanbul","Ağrı"};

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setListAdapter(new ArrayAdapter<String>(Menu.this, android.R.layout.simple_list_item_1,

sehirler));

}

@Override

Page 34: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

protected void onListItemClick(ListView l, View v, int position, long id) {

// TODO Auto-generated method stub

super.onListItemClick(l, v, position, id);

if(position==0){

Toast.makeText(getApplicationContext(), "İzmir", Toast.LENGTH_SHORT).show();

}

if(position==1){

Toast.makeText(getApplicationContext(), "Şanlıurfa", Toast.LENGTH_SHORT).show();

}

if(position==2){

Toast.makeText(getApplicationContext(), "Ankara", Toast.LENGTH_SHORT).show();

}

if(position==3){

Toast.makeText(getApplicationContext(), "İstanbul", Toast.LENGTH_SHORT).show();

}

if(position==4){

Toast.makeText(getApplicationContext(), "Ağrı", Toast.LENGTH_SHORT).show();

}

}

}

Java dosyamızda göreceğiniz gibi listedeki hangi şehire tıklanırsa/touch edilirse o

şehrin ismini Toast sınıfını kullanarak ekrana mesaj/bildirim olarak yazdırıyoruz.

Toast sınıfı ile mesaj gösterimini daha önceki yazılarımda anlatmıştım. Tekrar bakmak

isteyenler için: Toast: Kullanıcıya Mesaj Gösterme veya Geri Bildirim Mesajı

Android Spinner kullanımı Spinner açılır liste şeklinde seçim olanağı sağlar. Spinner’ın içerisini veri tabanında çekilen verilerle veya

oluşturduğumuz diziler gibi static veriler ile doldurabiliriz. Yazdığım kodlarda spinner’ın içerisini xml

dosyasında oluşturduğum dizi ile dolduruyorum.Yeni bir xml dosyası oluşturup içerisine aşağıdaki diziyi

yaratıyoruz.

1

2

3

4

5

6

7

8

9

<string-array name="dizi"> <item>Pazartesi</item> <item>Salı</item> <item>Çarşamba</item> <item>Perşembe</item> <item>Cuma</item> <item>Cumartesi</item> <item>Pazar</item> </string-array>

Daha sonra spinner’ı kullanacağımız layout’a spinner ekliyeceğiz.

activity_main.xml

1

2

3

4

5

6

7

8

<Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="fill_horizontal" android:drawSelectorOnTop="true" > </Spinner>

Page 35: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için

Şimdi class içinde kodlarımızı yazmaya başlıyoruz ilk olarak Spinner nesnesi oluşturuyoruz.Ve bunu class

değişkeni olarak yapmanızı öneririm.Daha sonra yazıdığım kodlar şu şekilde;

1

2

3

4

spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter adapter =

ArrayAdapter.createFromResource(this,R.array.dizi,android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter);

ilk satırda spinner’ı tanıtıyoruz. İkinci satırda bir arrayadapter olusturup veriyi çekiyoruz. Arrayadapter ‘in ilk

paremetresi içerik yani context ikincisi çekiceğimiz veri ,ücüncü parametre ise spinner’ın görüntüsüdür.

Ücüncü satırda ise spinner’ın dropdown halindeki görüntüsünü belirliyoruz.Son satırdada setAdapter ile

adapterimizi spinnera yüklüyoruz.Kodların tamamı aşağıdaki gibidir.

1

2

3

4

5

6

7

8

9

1

0

1

1

1

2

1

3

1

4

1

5

1

6

1

7

1

8

1

9

public class MainActivity extends Activity { Spinner spinner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter adapter =

ArrayAdapter.createFromResource(this,R.array.dizi,android.R.layout.simple

_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown

_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Log.i("uyarı",String.valueOf(arg2)); } @Override public void onNothingSelected(AdapterView<?> arg0) { } }); } }

Page 36: Android Nedir? · Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından gelitirilen, Linux tabanlı, mobil cihaz ve cep telefonları için