Android Studio İle Uygulama Geliştirme-Bilmece Cevabı Ekrana Yazdırma

Ana Sayfa > Makaleler > Teknoloji > Yazılım
Tarih:6.6.2018 16:05:15 Görüntülenme:554     Kopyalanabilir Yap
 

Giriş

Herkese merhaba, yeniden yine android studio girişimlerini sergilemek üzerine burdayız.wink

Java'da bir kaç örnek yapmıştık, kalıtım, sınıflar vs öğrenmiştik. Şimdi biraz android studio ile uygulama geliştirmeyi görelim. Öğrenelim demedim dikkat, çünkü henüz bende(yazar burda acıklı acıklı iç geçirir) yeni öğreniyorum. cheeky

Öğreneyim ki size de öğretebileyim.

Düşe kalka, hata yapa yapa, belki de daha kolay yollar varken uzun ve çetrefilli yollardan orasını burasını dürte dürte öğreneceğim uygulama geliştirmeyi sizlerlede an be an burda paylaşacağım.

Şimdiii, bu kadar konuşma yeter, icraat vakti.

Bugün ne yapacağız? 

Android Studio ile butona erişme ufak küçük compenent tanımlamaları, dönüşümler göreceğiz.

Bir bilmece yazacağız, yazdığımız bilmecenin textview'ini dinleyeceğiz. Ve butona bağlayarak 2. bir textviewde o bilmecenin cevabını göstereceğiz. Karışık geldiyse endişeye gerek yok, uygularken anlaşılacak.

Öncelikle şunu belirteyim, yazılımın ucundan kıyısından yakalamış insanlarsanız az biraz java, xml, html bilginiz varsa sizin için çokta zor olmayan bir platformda uygulama geliştireceksiniz demektir. Ben şimdiye kadar bir kaç platformda bir şeyler yapmaya çalıştım, html bilgim var, javayıda KODLAB'ın Yeni Başlayanlar İçin Java kitabından epeyce bir teoride bilgi edinmiştim. O yüzden çok zorlanmadım başlangıçta. Tabi şuan sadece başlangıçtayız! onuda göz ardı etmemek lazımlaugh

Hadi Başlayalım

Bu uygulamada 3 tane yer bizim işimizi görecek.

  1. Biri tasarımı oluşturduğumuz layout içindeki activity_projeadiniz.xml
  2. Bir diğeri valuesin içindeki.string xml
  3. Ve son olarakta artık butonlara görev atamak belli işler yaptırmak için kullanacağımız java klasörü altındaki proje adınızın yer aldığı java kod bloğunuzun olacağı kısım.

Tasarım için 2 adet TextView 1 adet Button' a ihtiyacımız var. Yerleşimi size kalmış, ben textview button textview olarak yerleştirdim. Bu arada yerleşim demişken sol Palette menüsünden kompenentleri öylece çekip yerleştirmek yerine, yine o kısımda bulunan yerleşimi düzenleyici içinde table vs olan bölümden önce bir yerleşiminizi düzenleyin. Sonra kompenentleri koyun.

Tasarım bittiğine göre gelelim koyduğumuz textviewlere butonlara id vermeye (isim vermeye). Hep textbox diyesim geliyor :)) arada söylersem anlayınki textviewden bahsediyorum.

Textview ve Buttonların properties kısmında id bölümleri var. Oradan, sonradan bu kompenentlere ulaşmak için id vermemiz şart. Ki zaten siz bunu biliyorsunuzdur. wink

Evettt, bu kısımda artık benim size şunu yapın diyeceğim bir şey kalmadı, sadece textlerini textviewlerini herhangi bir şey, o textviewi anlatan bir şey girin ki birazdan anlatacağım string.xml kısmında onları kullanalım. Ah birde, görünümü güzelleştirmek size kalmış. Birazcık dürtün properties özelliklerini.

String.xml kısmı bizim proje ismimizi de değiştirebileceğimiz, projemizde ki tüm compenentlerin adını verebileceğimiz yani kısacası burada yapacağımız tanımlama yada değişikliklerin uygulamanın her yerinde değişmesini sağlayan bir çatı görevi gören yer olarak düşünebilirsiniz. 

Örneğin az evvel textview için idsini txt_tut olarak tanımlamış olalım. Text'inide tut_textview'i olsun. 

<string name="tut_textview">Bu kısım textviewin içinde gözükecek</string><string name="tut_textview">Bu kısım textviewin içinde gözükecek</string>

Eğer biz string.xml de tut_textview içinde bir şey yazmamış olsaydık (Bu kısım textviewin içinde gözükecek kısmı) textview de tut_textview texti gözükecekti. Bir bakıma manuel doldurmak yerine burda otomatikleştiriyoruz ve her yerde aynısı gözüküyor diye düşünebilirsiniz.

Bu arada uygulama adınızı da şu şekilde değiştirebilirsiniz:

<string name="app_name">uygulamayı ilk verirken ki ad burda gözükücek, buraya müdahale ederek değiştirin</string>

Şimdi string.xml için de anlatacaklarımız bu kadar. 2 adet textviewiniz vardı. İkisi içinde id ve text tanımladınız, burda idye ihtiyacınız yok textini atayın yeter.

Ve son olarak işin cilvesi, java kısmı java dili hoşunuza gidiyor mu bilmiyorum ama eğer gitmiyorsa üzgünüm klavyenizin tuşlarına yazık etmeden bırakın android sevdasını. 

Javada bir çok şey iç içe, şimdi göreceksiniz kalıtımdan, altlık üstlük ilişkisinden(super-sub classlar), bir butonu dinlemekten, butona texte ulaşmaktan müdahale etmekten bahsedeceğiz. Ve bunlar malesef tek satır kodla oluşan şeyler değilfrown

Şimdi size java kısmının tüm kod bloğunu aşağıya ekleyeceğim. Onun üzerinden konuşsak daha iyi. Tek tek yazarak atlaya atyala açıklamakla aklınızı karıştırmayalım. Bir de benim isimlerim yani textlerim sizinkinden farklı olabilir siz size uygununu yazın.

MainActivity.Java dosyası içincekiler:

package com.tod.a5haziran; //bu kısmın benim uygulama ismim kendi hazır getiriyor

import android.support.v7.app.AppCompatActivity; //yine burasıda hazır geliyor

import android.os.Bundle; //ve burasıda hazır geliyor

import android.view.View; //ihtiyaca göre yani kullanılan nesneye göre class,kütüphane eklemesi

import android.widget.TextView; //ihtiyaca göre yani kullanılan nesneye göre class, kütüphane eklemesi

import android.widget.Button; //ihtiyaca göre yani kullanılan nesneye göre class, kütüphane eklemesi. Class, kütüphane ekleme şekline takılmayın o dile göre değişiyor zaten pratik kazandıkça alışırsınız(bende sanki çok alışmışım gibi!laugh )

public class MainActivity extends AppCompatActivity implements View.OnClickListener //Şimdi nasıl anlatsam da işin içinden tereyağından kıl çeker gibi çıksak;)

Burası aslında gayet sade bir public class tanımlamasıydı. Biz buttona erişebilmek için View.OnClickListener diye bir olayı implements ettik. Bünyesine dahil etmek denebilir. İhtiyacımız olan olaya göre başka olaylarda implements edebilirdik. Sınıfların birleştirici özelliğinden yararlandık, Listener bir dinleme olayı yapacağımızdan.

{

TextView tutcevap; //her yerde tutcevap değişkeninin tanınması için en üstte tanımladık

@Override //soyut sınıfta tanımladığımız metodu alt sınıfta override ederiz, o yüzden burda bu yazıyor bu nerden geldi demeyin. Kuralı böyle... (Soyut sınıf ve kalıtım arasındaki ilişki)

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState); //Bu kısım kalıtımdan geldi super classlar üst classlardır. Kalıtım yapmak için yukarda extends kullandık. Yani click dinlemeyi türettik, hangi classtan türettiğimizi yazdık şurdan bahsediyorum: (public class MainActivity extends AppCompatActivity implements View.OnClickListener)

Super sınıf altındaki tüm sınıfların başıdır.

Alt sınıflar(sub class) super classın özelliklerini taşır. Şimdi burayı geçiyorum, kalıtımı anlamıyorsanız bu alt sınıf üst sınıf muhabbetlerini onun içinde bir makale yazacağım. yes

setContentView(R.layout.activity_main); tutcevap= (TextView) findViewById(R.id.txt_cevap); //bu kısımda bahsedilecek bir çok şey var. bunlardan ilki findViewById(R.id.txt_cevap) kısmı. Find etmekle; R dediğimiz tüm uygulamadaki kompenentlere sistemin otomatik olarak atadığı idlerin bulunduğu yerdeki ilgili kompenentin idsine ulaşma yapıyoruz.

(Resource) R.Java'ya nerden ulaşacağınızı burdan yazarak nasıl anlatabilirim bilmiyorum ama sol üst kısımda proje klasörünüz için app yazanın en üstünde android yazıyor, o kısımdan packagesi seçin. Sonra kendi projenizi seçin(proje adınız ne ise o) burada R yazan javaya tıklatın, işte bu kısım.

Dikkat! R.java daki hiç bir kompenentin idsine yada herhangi bir başka yerine dokunmayın, değiştirmeyin. Açtığınızda üstteki kısımda da aynen bu mesajı göreceksiniz.

Evet ne dedik? find ile R deki istediğimiz kompenentin idsine ulaştık. Yani artık bu id ile o kompenente istediğimizi yapabiliriz. İkinci önemli kısım ise dönüşüm, bunu C# bilenler bilir, convert etmek burada bu şekilde oluyor. Kompenetleri değişkenlere atarken hepsinin aynı tip olması gerek.

Onu da şöyle yapıyoruz: (TextView) findViewById(R.id.txt_cevap); Button tutbuton= (Button) findViewById(R.id.btn_cevap); //button için değişken tanımladık, değişkeni convert ettik ve değişken için gerekli tasarımda id verdiğimiz ve R sınıfında da is olan kompenenti bulduk.

tutbuton.setOnClickListener(this); //butona dedikki sen bu olayı dinle, o olayda hemen aşağıdaydı zaten

}

public void onClick(View v) //genel bir class oluşturduk butonun textviewi dinleyebilmesi için

{

tutcevap.setText(R.string.bilmece_cevap); //2.textview yani bilmecenin cevabının olacağı textviewe string.xml deki adı verdik, gösterttik.

}

}

Ve işte bitti.. 

İnşAllah anlaşılmıştır. Benim anlatımımdan daha çok kafanız karıştıysa kodları alın yapıştırın kendiniz mana çıkarın :) Sorunuz olursa yoruma bırakın anlık dönüş sağlıyoruz. İstek olursa videosunuda çekeriz, bol kodlamalı günler. Görüşmek üzere, bizden ayrılmayın laugh

Not:Resmi indirerek daha iyi görebilirsiniz.

 

Ekleyen: Tuğçe Özkan
       
 
Okumuş olduğunuz yazının tüm sorumluluğu ekleyene aittir. Yazının telif hakkı yada uygunsuz içerik içerdiğini düşünüyorsanız lütfen bildiriniz. 

 
 
CoopCool'un Yazılarına Yorum Bırak ツ
◕ Bu Makaleye Henüz Hiç Yorum Yapılmamış, İlk Olmak İstermisinツ
   

En Yeniler

Sitemizde Şimdilik 1275 Yazı Bulunmaktadır.


MEDYADA ŞİDDET VE BİREYLERE ETKİLERİ
MEDYA VE TOPLUM
İLETİŞİMDE GENİŞ AÇIYLA BAKABİLMEK
GEÇMİŞTEN GÜNÜMÜZE AYDINLANMA
ORGAN KOPMALARINDA İLK YARDIM
2019-2020 Eğitim Ve Öğretim Yılı Kimya Dersi 1.Dönem 1.Yazılı Sınav Soruları
2019-2020 Eğitim Öğretim Yılı Kimya Dersi 1.Dönem 1.Yazılı Sınav Soruları
2019-2020 EĞİTİM VE ÖĞRETİM YILI MATEMATİK DERSİ 1. DÖNEM 1. YAZILI SORULARI
2019-2020 Eğitim Ve Öğretim Yılı Coğrafya Dersi 1.Dönem 1.Yazılı Sınav Soruları
2019-2020 Eğitim Ve Öğretim Yılı Matematik Dersi 1.Dönem 1.Yazılı Sınav Soruları

Kategorilerimiz




özlü söz ekliyorum tamam çok özlü oldu:)))

İlginizi Çekebilecekler

Java İle String İfadeleri Tersten Yazdırma
E-posta Terminolojisi ve Terimleri SMTP,POP3,IMAP
Çok Kanallı İşbirlikçi MAC Protokolleri
Serkan İnci-Her Gencin Dinlemesi Gereken 2 Dakikalık Etkileyici Konuşması
Template Ne Demek? Ne İşe Yarıyor?
Çok Kanallı MAC Protokolleri Ve Çok Sıçramalı Kablosuz Ağlar
UML (Unified Modelling Language) Standardizasyonu ve Versiyonları
Cdma’in Uzak-Yakın Probleminin Azaltılması
Java İle Switch Case Mantığına Örnek
Java da Türetilen Sınıf Türetildiği Sınıfın Yapıcısına Nasıl Ulaşır?