Android Dersleri – İlk Uygulama (Merhaba Android)

Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Android Eğitimleri yazı serimizde bu dersimizde İlk Uygulama (Merhaba Android) ile devam ediyoruz. Dersin başlığından da belli olacağı gibi bugünkü dersimizde android kodlamaya giriş yapacağız ve ilk programımızı emülatör veya gerçek bir cihaz üzerinde çalıştıracağız.

Öncelikle Android Studio’da  Merhaba Android adında bir uygulama oluşturalım. Android Studio’da proje oluşturmak için dersimizi inceleyebilirsiniz. Merhaba Dünya uygulamamızı oluştururken Android Studio bize hangi template ile uygulamayı oluşturacağımızı soracaktır. Biz Empty Activity olanı seçerek devam ediyoruz.

Bu uygulamamıza bir tane buton ekleyeceğiz ve butona tıklanınca alert(uyarı) çıkarıp Merhaba Android yazdıracağız ve Tamam butonuna basınca alert’i kapatacağız. Elbette henüz buton nedir, alert nedir kavramlarını öğrenmedik. İlerleyen derslerimizde bu konuları zaten inceleyeceğiz. Buradaki amacımız basitçe ilk uygulama’mızı yazıp uygulamayı emülatör ya da gerçek cihazda çalıştırabilmek.

Android Studio açılınca karşımıza aşağıdaki gibi bir ekran gelmektedir.

MainActivity.java sayfamız java kodlarımızı yazacağımız ve uygulamamızın başlayacağı sayfadır. activity_main.xml ise MainActivity sayfamızın görselidir. XML dosyasıdır. MVC (Model-View-Controller) yapısında View’ler yani görseller ayrı yerde tutulmaktadır. Aynı Android’de de View’leri Xml’lerde tutuyoruz. Controller’ımız ise Java sayfamız olmaktıdır. MVC hakkında daha detaylı bilgi için tıklayınız.

 Bu açtığımız uygulama aslında direkt olarak çalıştırılabilir bir uygulamadır. Run butonuna bastığımız an çalışabilecek durumdadır. Ancak biz bir buton ekleyeceğiz ve o butona bir action tanımlayacağız ve sonrasında çalıştıracağız.

Gelelim kodlarımıza

XML Kodları

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    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.mobilhanem.merhabaandroid.MainActivity">

    <Button
        android:text="Tıkla"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>

Yukarıda Relative Layout içine butonumuzu koyduk. İlerleyen derslerimizde Relative Layout nedir, buton nedir anlatacağız. Ama şimdiden göz gezdirmek isterseniz RelativeLayout ve LinearLayout derslerimizi inceleyebilirsiniz.

Java Kodları

MainActivity.java

package com.mobilhanem.merhabaandroid;

import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button buton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); //MainActivity sınıfımızın hangi View'i kullanacağını set ediyoruz


        //activity_main.xml içine koyduğumuz butonu Java dosyamızda kullanabilmek için buton referansına atıyoruz
        //buton ismindeki referansımız artık view içindeki butonu temsil etmektedir, butona action ekleyebilir tasarımın java dosyamız içinden düzenleyebiliriz
        buton = (Button) findViewById(R.id.button); 

        buton.setOnClickListener(new View.OnClickListener() { //butona tıklandığı an yapılacaklar
            @Override
            public void onClick(View view) {
                new AlertDialog.Builder(MainActivity.this)
                        .setTitle("Merhaba Android")
                        .setMessage("Mobilhanem Android Eğitimleri ilk uygulamamız.")
                        .setPositiveButton("Tamam", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                // Tamam butonuna basılınca yapılacak olanlar
                            }
                        })
                        .setNegativeButton("İptal", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                // İptal butonuna basınca yapılacak olanlar
                            }
                        })
                        .show();
            }
        });

    }
}

Yukarıda kod içerisinde de açıklamalar yaptım. Burada dikkatinizi setContentView ve findViewById kısmına dikkat çekmek istiyorum. Bundan sonraki neredeyse tüm derslerimizde bu iki metotu kullanacağız.

setContentView metotu ile hangi XML dosyamızı kullanacağımızı bildiriyoruz. findViewById ise setContentView ile set ettiğimiz view’lerin içindeki Android componentlarını (button, edittext,textview ..) referanslara atıyoruz. Artık java kodu içinden bu referanslarla bu componentları yönetebiliriz. Örnek verecek olursak aşağıda activity_main.xml içindeki butonumuzu buton adındaki referansa atıyoruz.

 

        buton = (Button) findViewById(R.id.button); 

Ve sonrasında bu butona tıklanıldığı an aşağıdaki gibi ne yapılacağını Java ile hazırlıyoruz.

buton.setOnClickListener(new View.OnClickListener() { //butona tıklandığı an yapılacaklar
            @Override
            public void onClick(View view) {
                new AlertDialog.Builder(MainActivity.this)
                        .setTitle("Merhaba Android")
                        .setMessage("Mobilhanem Android Eğitimleri ilk uygulamamız.")
                        .setPositiveButton("Tamam", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                // Tamam butonuna basılınca yapılacak olanlar
                            }
                        })
                        .setNegativeButton("İptal", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                // İptal butonuna basınca yapılacak olanlar
                            }
                        })
                        .show();
            }
        });

Uygulamayı Run butonu ile çalıştırıyoruz.

Çalıştırdığımız an bize cihaza takılı olan gerçek cihazları ve kurulu olan emülatörleri gösteren bir sayfa açılmaktadır. Biz istediğimizi seçip uygulamamızı çalıştırıyoruz. Connected Devices kısmında takılı olan ve çalışmakta olan cihazları, Available Virtual Devices kısmında ise kurulu olan fakat çalıştırmadığımız emülatörleri göstermektedir.

Çalıştırmak istediğimiz cihazı seçip artık ilk uygulama’mızı çalıştırıyoruz ve açılan ekrandaki butona tıklayarak aşağıdaki gibi ekran görüntüsünü alıyoruz. Sizler de ilk uygulamanızın ekran görüntüsünü yorum olarak paylaşabilirsiniz:)

Böylelikle İlk Android Uygulama’mızı hazırlamış bulunuyoruz. İnşAllah bundan sonrası daha kolay olur. Benim bu dersimde anlatmak istediklerim bu kadar. Bir dahaki dersimde androidin bel kemiği olan Activity kavramından bahsedeceğim.

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm Android Dersleri için tıklayınız..

17

Taha Kırca

iOS & Android & Apple Watch Developer, Mobilhanem.com yazarı, Karadeniz Uşağu, Ordu Sevdalısı

5 Yorum

  • İlk uygulama için bu kadar karışık yapmanız güzel olmamış. Helloworld’ler genelde butona tıklayınca texti şu yap şeklinde olunca daha anlaşılır oluyor.

  • Merhaba,

    Uygulamayı çalıştırdığımda “AAPT2 error log for details” hatası almaktayım. Apkları build ettim fakat yine aynı hatayı gördüm. Yardımcı olur musunuz?

  • Tekrar merhaba,

    Values’daki dimens’i copy edince çalıştı. Neden dimens oluşmadı bilmiyorum? Teşekkür ederim 🙂

  • Yıllar sonra bile insanlar bilgilerinizden faydalanabiliyor. Harika bir şey. Emeklerinize sağlık.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?