Android’le ilgili birçok uygulama yazdım. Fakat bu uygulamarın hiçbiri bana ait uygulamalar değildi. Başkalarının yazdığı kodları çok az değişikliklere uğratarak yaptığım programcıklardı.
Bu öğretici uygulamalardan yola çıkarak kendime basit ama kullanışlı bir uygulama yapmak istedim. Android uygulamalarının çok kompleks uygulamalar olmasına gerek yoktur.
Bir arkadaşım bana vizelerden sonra finalden kaç alması gerektiğini hesaplamaktan hoşlanmadığını söylemişti. Bunu hesaplayan hatta yanlış hesaplayan başka bir arkadaşı tarafından yazılmış C programı vardı. Yanlışlarına rağmen doğru çalıştığı kısmıyla kullanıyordu. Bu bana yapacağım Android uygulaması için fikir verdi. Basit ama kullanışlı bir uygulama olacağını düşündüğüm için yazmaya koyuldum.
Kullandığım IDE, Eclipse ve Android versiyonu Anroid 2.3 Gingerbread olacaktır. Proje oluştururken versiyonun düşük seçilmesi ve buna göre geliştirme yapılması tavsiye edilmektedir. Çünkü yeni çıkan her Anroid versiyonu, kendinden öncekileri desteklemektedir. Düşük versiyon için yazdığınız kodlar üst versiyonların hepsinde çalışacaktır. Fakat kullanıcısı zaten az olan 2.2’den düşük versiyonlar için geliştirme yapmayabilirsiniz.
Öncelikle aşağıda gösterildiği gibi layout’umuzu oluşturuyoruz. Fazla bileşen kullanmayacağız. Resimde gözükmesede butonun altında 5 adet textView vardır.
Bu görüntüyü oluştururken herhangi bir kod yazılmıyor. Package Explorer altında Projeniz bulunmaktadır. Buna tıkladıktan sonra res klasörü altında layout içinde belirlenen şablon dosyasına tıklandığında karşımıza kullanıcı dostu bir arayüz gelmektedir. Daha sonra sürükle bırak yöntemiyle. Önce bir adet EditText nesnesi, sonra buton sonra da 5 adet alt alta textView nesnesi bırakıyoruz.
“Hardcoded string “Button”, should use @string resource” şeklinde bir hata ile karşılaşıldığında bunun çözümü resources/values/strings.xml dosyasına Button şeklinde bir etikete sahip xml tagı koymaktan geçer. Sadece button’da değil başka nesnelerde bu tür uyarılarla karşılaşabilirsiniz. Çözüm bahsettiğimiz string.xml dosyasına değer eklemektir.
Uygulamamızın layout yani düzen kısmı aşağıdaki gibidir. Eğer res klasörü içindeki layout altında bulunan xml dosyasına bu kodu yapıştırırsanız aynı görüntüyü elde edebilirsiniz. Biz sürükle bırak işlemlerini yaparken arkada yazılan xml satırları bunlardır.
[code]
<button>
[/code]
Yukarıdaki resimde Hardcodde string uyarısını almamak için eklediğimiz değeri görüyorsunuz. Tabi buradaki değeri düzen(layout) kısmında da tanıtmanız gerekmektedir. Aşağıdaki butona yukarıda tanımladığımız string değerini tanıtıyoruz.
Bu şekilde uyarı veya hata almamış oluruz. Şimdi sıra geldi kodlara. İşin en önemli kısmı burası. Her dilde olduğu gibi butonumuz için bir tıklama olayı tanımlayacağız. EditText nesnesinden bilgileri alacak ve textView nesnelerinde gösterecek.
Yazacağımız kodlar src altında oluşturduğumuz package’ın altındaki sınıfta bulunacak. Bize sadece bir sınıf yetecektir. Muhtemelen o sınıf proje başlangıcında oluşturulmuştur. Bize de içini doldurmak kalıyor. Aşağıda sınıf içine yazdığım kodların tamamı görülmektedir. Kodların içinde açıklamalar yapılmıştır. Basit ve anlaşılması kolay bir uygulama olduğu için sizi kodla başbaşa bırakıyorum.
Uygulamayı linkten indirebilirsiniz.
[code]
package com.kacgerek;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class KacGerek extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//C’deki define gibi sabit tanımlamaları yapıyoruz.
final int C_NOT = 60;
final int B2_NOT = 65;
final int B1_NOT = 70;
final int A2_NOT = 80;
final int A1_NOT = 90;
final float ILK_CARPAN = (float) 0.4;
final float SON_CARPAN = (float) 0.6;
//Düzen(Layout) kısmında,xml dosyasında bulunan tanımlamaları nesne olarak kullanmak üzere dönüştürüyoruz.
Button gonder = (Button) findViewById(R.id.button1);
final EditText not_al = (EditText) findViewById(R.id.editText1);
final TextView not_c = (TextView) findViewById(R.id.textView1);
final TextView not_b2 = (TextView) findViewById(R.id.textView2);
final TextView not_b1 = (TextView) findViewById(R.id.textView3);
final TextView not_a2 = (TextView) findViewById(R.id.textView4);
final TextView not_a1 = (TextView) findViewById(R.id.textView5);
gonder.setOnClickListener(new OnClickListener() {//Yukarıda tanımı yapılmış olan buton nesnesine tıklama dinleyicisi koyuyoruz.
@Override
public void onClick(View v) {//Bu tıklama gerçekleştiğinde çalışacak fonksiyondur.
int not = Integer.parseInt(not_al.getText().toString());
if(not=0) {
float c=(C_NOT-(not*ILK_CARPAN))/SON_CARPAN;
float b2=(B2_NOT-(not*ILK_CARPAN))/SON_CARPAN;
float b1=(B1_NOT-(not*ILK_CARPAN))/SON_CARPAN;
float a2=(A2_NOT-(not*ILK_CARPAN))/SON_CARPAN;
float a1=(A1_NOT-(not*ILK_CARPAN))/SON_CARPAN;
if(c>=50)
{
not_c.setText(" Dersi geçmek için finalden "+String.format("%.2f", c)+" almalısınız.");
}
else
{
c = 50;
not_c.setText(" Dersi geçmek için finalden en az "+String.format("%.2f", c)+" almalısınız.");
}
if(b2=50)
{
not_b2.setText(" B2 için finalden "+String.format("%.2f", b2)+" almalısınız.");
}
else if(b2==(B2_NOT-(100*ILK_CARPAN))/SON_CARPAN)
{
not_b2.setText(" Vizeden 100 aldığınız için B2 düşüremiyorsunuz.");
}
else if(b2<50)
{
b2 = 50;
not_b2.setText(" B2 için finalden"+String.format("%.2f", b2)+" almanız yeterlidir.");
}
else
{
not_b2.setText(" Maalesef B2 düşüremiyorsunuz :(");
}
if(b1<=100)
{
not_b1.setText(" B1 için finalden "+String.format("%.2f", b1)+" almalısınız.");
}
else
{
not_b1.setText(" Maalesef B1 düşüremiyorsunuz :(");
}
if(a2<=100)
{
not_a2.setText(" A2 için finalden"+String.format("%.2f", a2)+" almalısınız.");
}
else
{
not_a2.setText(" Maalesef A2 düşüremiyorsunuz :(");
}
if(a1<=100)
{
not_a1.setText(" A1 için finalden"+String.format("%.2f", a1)+" almalısınız.");
}
else
{
not_a1.setText(" Maalesef A1 düşüremiyorsunuz :(");
}
}
else {
Toast.makeText(KacGerek.this, "Yanlış giriş yaptınız.", Toast.LENGTH_LONG).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
[/code]
Aşağıda programın çalışır hali görülmektedir.
ömer kardeşim eline sağlık… gayet güzel ve düşünülmüş bi çalışma olmuş..
Beğenmene sevindim kardeşim, yorum için teşekkürler.
slm benim basit bi uygulama yapmam gerekiyor vizeme etki edecek hoca çocuklar için kolay bişey yapın dedi yardımcı olursanız sevinirim.
Yardımcı olurum, ne tür bir uygulama düşünüyorsunuz?
iyi geceler.facebookta mesaj gönderdim diğer klasörüne bakar mısın?
Mesajınızı cevapladım umarım faydalı olur.
Ömer Bey faceden mesaj attım donerseniz çok sevinirim
Mesajınızı okudum, cevapladım, umarım faydalı olmuştur.