RSS

Etiket arşivi: android

YENİ ADRESİM : www.tugrulasik.com

                          WWW.TUGRULASIK.COM

                                  WWW.TUGRULASIK.COM

                                  WWW.TUGRULASIK.COM

 

 

 

Etiketler: , , ,

Android Not Defteri Uygulaması

Merhabalar arkadaşlar,

Kısa bir süre önce SQLite’ın ne olduğu ve android üzerinde nasıl kullanıldığıyla ilgili kısa bilgiler vermiştim. Vermiş olduğum bilgileri biraz daha anlaşılabilir hale getirmek adına yazmış olduğum “Not Defterim” uygulaması bugünkü yazımın konusu.

Yazının akışında, ilk olarak uygulamanın nasıl çalıştığını görselleriyle anlatacağım daha sonra ise uygulamanın yorum satırlarınıda içeren kaynak kodu paylaşacağım. Sqlite ve customlistview  konusunda içerik barındıran bir uygulama olan “Not Defterim” uygulamasının  uygulamalarınızı geliştirirken yardımcı olması dileğiyle ;).

Uygulamanın Çalışması

Not defteri uygulaması, not ekleyip notlar üzerinde düzenlemeler ve silme işlemi yapabileceğiniz bir uygulama. Eklenen notlar sqlite veritabanında kaydediliyor ve ihtiyaca göre sorgularla çağrılıyor. Ayrıca notları listelerken kullanılan listview yapısının elementleri custom olarak hazırlanmış bir layoutun listeye adapte edilmesiyle oluşuyor.

                          WWW.TUGRULASIK.COM

Devam * Devam * Devam

Read the rest of this entry »

 
4 Yorum

Yazan: 21 Aralık 2011 in Android

 

Etiketler: , , , , , , , , , , , , , , , ,

Android SQLite Database Kullanımı

Merhabalar arkadaşlar,

Bugün SQLite’ın ne olduğuna ve  android üzerinde  nasıl kullanıldığına değineceğim. Bilindiği üzere çoğu uygulamada verilerin bir yerlerde depolanması gerekiyor. Bunun için en iyi seçimlerden birinin veritabanı olduğu şüphesis. Sözü fazla uzatmadan konuya girelim artık. Faydalı olması dileğiyle.

SQLite Nedir ?

Kullanımı basit, çok yer kaplamayan ve mobil cihazlarda rahatlıkta kullanılabilen açık kaynak kodlu ve sistem bağımsız bir veritabanı kütüphanesi ve motorudur. SQLite, onlarca programlama dili ile kullanılabilir. Az yer kaplaması ve istenilen hızda veri işlemleri yapabilmesi tercih sebepleri arasındadır.

SQLite Veritabanında Desteklenen Veri Tipleri

  • TEXT
  • NUMERIC
  • INTEGER
  • REAL
  • NONE

SQLite Veritabanının Android Üzerinde Kullanımı

Bilindiği üzere Android üzerinde otomatik olarak hazır bir veri tabanı sunulmamaktadır. Eğer android uygulamamız için bir veritabanı oluşturmak istiyorsak, kendi tablolarımızı ve veri tiplerimizi belirlemeli  daha sonrada bunlar arasındaki ilişkileri düzenlemeliyiz. Yani sıfırdan bir veritabanını hayata geçirmeliyiz diyebiliriz. Bu ilk bakışta biraz karmaşık gelebilir, hatta sqlite’ın görsel arayüzünün olmadığını düşünürsek dahada karmaşıklaştığını düşünebiliriz; fakat daha önce sql ile biraz ilgilenmiş iseniz çok rahatlıkta sqlite’a uyum sağlayabilirsiniz. Ayrıca üçüncü parti araçlarla görsel arayüz desteği sağlanabilmektedir.

                          WWW.TUGRULASIK.COM

Şimdi android üzerinde bir veritabanının nasıl oluşturulduğuna ve temel operasyonların (SELECT,DELETE,INSERT,UPDATE) nasıl kullanıldığına bir göz atalım.

Öncelikle şunu söylemeliym ki, SQLite veritabanı oluştururken bazı hazır sınıfların altsınıfları olarak türetilen sınıflar üzerinde işlem yapmak bizlere her zaman fayda sağlayacaktır. Kütüphane tarafından sağlanan sınıflar hem mantıksal bir bütünlük hemde veritabanını yönetmeyi kolaylaştıracak yetenekleri desteklemektedir. Bir veritabanının nasıl oluşturulduğunu ve operasyonların nasıl çalıştırıldığını aşağıdaki adımlarda bulabilirsiniz.

1. SQLiteOpenHelper’dan türetilen bir sınıf oluşturmak.

public class TestDBHelper extends SQLiteOpenHelper { }

Bu bizlere  2 methodu kullanma zorunluluğu getirecektir.

  1.  onCreate(SQLiteDatabase db) : Veritabanı ilk oluşturulduğunda çağrılır. Tabloları, viewleri, trigger vb. yapılar bu method içinde oluşturulur.
  2.  onUpgrade(SQLiteDatabase db, int eskiVersiyon, int yeniVersiyon) : Veritabanı üzerinde herhangi bir değişiklik olduğunda çağrılır. Tablo değişimi vb. gibi.

2. Sabitleri tanımlamak

public class DenemeDBHelper extends SQLiteOpenHelper {

static final String dbAdi=”DBTEST”;
static final String KISITABLE =”KISI”;
static final String _ID=”_ID”;
static final String ad =”ad”;
static final String soyad =”soyad”;
static final String yas =”yas”;
static final int version =1;

//constructer()…
//onCreate()….
//onUpgrade()….
}

Sabitleri helper sınıf içinde tanımladığımız gibi farklı bir sınıf içerisinde de tanımlayabiliriz. Yeterki erişilebilir ve kullanımı anlaşılabilir olsun. Ben örnek için kişinin ad,soyad ve yaşının tutulduğu tabloyu içinde barındıran bir veritabanını baz aldım. (Static ve final olarak tanımladığımıza dikkat ediniz !)

3. Constructer

public TestDbHelper(Context context){

super(context,dbAdi,null,version);

}

4. onCreate() ve Tablo Oluşturmak

Tablo oluşturma işlemlerimizi onCreate() methodu içerisinde yapıyoruz.  Aşağıda bir kişi tablosu oluşturmak için gereken sql cümleciğini ve bir tablonun nasıl oluşturulduğunu bulabilirsiniz.

public void onCreate(SQLiteDatabase db) {

db.execSQL (“CREATE TABLE”+ KISITABLE+”(“+_ID+” INTEGER PRIMARY KEY AUTOINCREMENT,”+ ad+”        TEXT, “+soyad+” TEXT, “+yas+” INTEGER);”);

}

5. onUpgrade()

Veritabanında herhangi bir modifikasyon olduğunda onUpgrade() methodu çalıştırılır. Daha sonrasında çağrılan onCreate() methodu değişikleri hayata geçirmeye yarar.  (Drop Table , Alter Table, Drop arg. Alter arg)

public void onUpgrade(SQLiteDatabase db, int eskiVersiyon, int yeniVersiyon){

db.execSQL(“DROP TABLE IF EXISTS”+KISITABLE);

onCreate(db);

}

6. Veritabanı İşlemleri için Gereksinimler

  • close() : Veritabanını kapatır.
  • getReadableDatabase() : Okunabilir bir veritabanı sunar. Select işlemleri için uygundur.
  • getWritableDatabase() : Yazılabilir bir veritabanı sunar update,delete ve insert işlemleri için uygundur.

7. Queryleri Çalıştırmak

Sqlite hem bilinen sql cümleciklerini (rawQuery()) desteklemektedir hem de kendi içinde özelleşmiş sorgulama methodları bulunmaktadır.

  • db.rawQuery(String sql, String[] selectionArgs) : Örneğin SELECT * FROM KISITABLE sql cümleciğini kullandığımızda tablodaki tüm verileri tamamıyle elde edebiliriz. Döndürülen sonuç Cursor tipindeki değişkene atanır .
SQlite’ın özelleşmiş methodları ;
  • query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
  • insert(String table, String nullColumnHack, ContentValues icerikDegerleri)
  • delete(String table, String whereCumlecigi, String[] whereArgumanları)
  • update(String table, ContentValues icerikDegerleri, String whereCumlecigi, String[] whereArgumanlari)
Yukarıdaki methodların kullanımını kısaca örneklemek gerekirse;

public Cursor rawQueryTest() {
Cursor sonuc= new Cursor();

sonuc=db.rawQuery(“SELECT_ID,ad,soyad,yas FROM KISI, null);return sonuc;}


public Cursor queryTest(){

String[] columns={_ID, ad};
String[] isimDegeri={“Tugrul”};
Cursor sonuc=db.query (KISITABLE, columns, “ad=?”, isimDegeri, null, null, null);

return sonuc;

}


private void insertTest(String a, String s, int y) {

ContentValues cv=new ContentValues(3);

cv.put(ad,a);
cv.put(soyad,s);
cv.put(yas,y);

db.insert(KISITABLE, null, cv);

}


private void deleteTest(int id) {

String[] args={String.valueOf (id)};
db.delete (KISITABLE, “_ID=?”, args);

}


8. Cursor Kullanımı

Cursor c = new Cursor();

  • startManagingCursor(c) : Cursor üzerinde işlemler yapabilmeyi sağlar.
  • getCount() : Veritabanındaki kayıt sayısını döndürür.
  • moveToFirst() : Cursor veri tabanındaki ilk kayda gider
  • moveToNext() : Cursor bulunduğu konumdan bir sonraki kayda geçer.
  • isAfterLast() : Son satırdan bir önceki mi sorgulaması yapar
Bunların dışında  getColumnNames(), getColumnIndex(), getString(), getInt() methodları veritabanı işlemleri sırasında sıklıkla kullanılmaktadır.
 Tüm verilerin nasıl getirildiğini ve verilere nasıl ulaşıldığını gösteren kod parçasını aşağıda bulabilirsiniz.

public void cursorTest() {

Cursor c = db.rawQueryTest();
startManagingCursor(c);
if (c.moveToFirst()) {
do {

int id1 = c.getInt(c.getColumnIndex(_ID));
String ad1 = c.getString(c.getColumnIndex(ad));
String soyad1= c.getString(c.getColumnIndex(soyad));
String yas1 = c.getInt(c.getColumnIndex(yas));

//alınan verilerden nesne oluştur dizi vektor, list vb. ekle

} while (c.moveToNext());
}
}


Yazımda sqlite veritabanının android üzerinde nasıl kullanıldığına temel operasyonları örnek alarak kısa bir giriş yapmak istedim. Uygulamalarınızda yardımcı olması dileğiyle . iyi çalışmalar diliyorum.
Okuduğunuz için teşekkürler 😉
.
.
.
Kaynakça :
developer.android.com, wikipedia, arsivyazilim.com, sqlite.org, The Android Developer’s CookBook (James Steele, Nelson To)
 
4 Yorum

Yazan: 09 Aralık 2011 in Android

 

Etiketler: , , , , , , , , , , , , , , , , ,

Android Uygulamasını Oluşturan Öğeler Ve Celcius-Fahrenheit Dönüştürme Uyg. Üzerinde Anlatımı

Herkese merhabalar,

Bu yazımda bir  android uygulamasını oluşturan öğeler, bunların birbiri arasındaki ilişkileri üzerinde bazı kısa bilgiler vereceğim ve  öğeler arasındaki ilişkilerin anlaşılması açısından küçük bir uygulamanın geliştirilme aşamalarını anlatacağım.  Yardımcı olması dileğiyle 😉 .

A – Uygulamayı Oluşturan Öğelerin Tanıtımı

Öncelikle bir uygulamaya başlamadan önce  genel anlamda uygulamayı   oluşturan öğeleri kısaca tanıyalım. Aşağıdaki şekilde bir android projesini ilk açtığımızda varsayılan olarak karşımıza gelen öğeleri görebiliriz.  Nasıl proje  açıldığına gözatmak için buraya tıklayabilirsiniz. Öğeler hakkında kısaca bilgi vermek gerekirse;

[1] : Kaynak kodların yer aldığı kısımdır. Gerek Activity sınıflarımız gerekse diğer sınıflar burada yer alır. Dikkat edilmesi gereken şey, sınıf isimlerinin anlamlı olması ve paketlerle iyi bir şekilde kategorize edilmesidir. Bu hem yazılımın ne yaptığının anlaşılmasını kolaylaştıracak hem de yazılım gelişirme sürecinde bizlere kolaylık sağlayacaktır.

[2] : İçeriği otomatik üretilen bir sınıftır. Gerek sayfa düzeni gerekse manifest içerisinde yapılan çoğu değişiklik buraya otomatik olarak yansır. R.java sınıfı üzerinden birçok öğeye erişilir.

[3] : Uygulamada kullanılan kütüphanelerin yer aldığı kısımdır.

[4] : Uygulamada kullanılan  şekil, resim, foto, icon vb. görsel öğelerin yer aldığı kısımdır. Üç farklı görüntü kalitesinde kategorize edilmiştir.

[5] : Sayfa düzeni, sayfalar vb. öğelerin yer aldığı kısımdır.

[6] : Referans değerlerimizin yer aldığı kısımdır.  Örn: “unvan”, “blog yazarı” eşleştirmesi gibi. @string/unvan denildiğinde direk olarak bizlere “blog yazarı” değerini verecektir.

[7] : AndroidManifest.xml (Önemli)

Android  uygulamasının çalışması için gerekli tüm prensiplerin belirlendiği dosya diyebiliriz. Filtrelemeler, izinler, versiyon ayarları ve bir android uygulamasında  aklınıza gelebilecek birçok şey bu dosya içerisindeki verilere göre şekilleniyor. Örneğin, sms gönderme iznini vermediğimiz bir uygulama sms gönderemez veya internet erişimi vermediğimiz bir uygulamanın internete bağlanma imkanı yoktur. Ya da bir activity sınıfını bu dosyada tanıtmadığınız sürece uygulamanız içerisinde o sınıfa erişmeniz mümkün olmayacaktır. Bundan dolayı  bir android uygulamasının en önemli parçalarından diyebiliriz ve içeriği oluşturulurken çok dikkat edilmesi gerekir.

B- Uygulamanın Hayata Geçirilmesi

Projemizi açtık. Öğeler hakkında bilgi edindik. Sıra geldi basit bir celcius-fahrenheit sıcaklık dönüştürme uygulaması yazmaya.

Öncelikle uygulamamız için bir sayfa düzeni oluşturmamız gerekecektir. Layout kısma sağ tıklayıp  “donusturucu” isminde bir xml dosyası oluşturalım. İlk oluşturduğumuzda boş bir dosya olduğu için hata işareti göreceğiz. Ama  xml dosyasını kapatıp tekrar açtığımızda  görsel araç karşımıza gelecektir ve buradan boşluğa bir layout sürükleyerek uygulama ekranımız için ilk adımı atabiliriz.

Dilediğimiz herhangi bir layout’uda kullanabiliriz; ama ben kolaylık olması açısından linearLayout tercih ettim bu uygulamada. Ayrıca bize kolaylık sağlayan araçlar her zaman %100 verimlilikle çalışmayabiliyor. Bundan dolayı bazen xml kodunu açıp manuel olarak düzenlemeler yapmamız gerekebilir. Aşağıda android:orientation”vertical” öğesinin manuel olarak xml dosyasına eklendiğini görebilirsiniz.
Read the rest of this entry »

 
1 Yorum

Yazan: 21 Eylül 2011 in Android

 

Etiketler: , , , , , , ,

Android İçin İlk Uygulama

Herkese selamlar,

Bugün sizlere android uygulama projesi nasıl oluşturulduğunu, emülatör ve gerçek cihaz üzerinde çalıştırılmasından bahsedeceğim. Daha önce bir android uygulaması geliştirebilmek için gereken yazılımları ve sisteme nasıl kurulacağını anlatmıştım. Dileyen arkadaşlar o yazım  buradan ulaşabilirler.

Projeye başlamadan önce  sizlere tavsiyem;  jdk, sdk kurulumlarından  ve referanslarının doğru bir şekilde ayarlandığından  emin olmanız.  Aksi taktirde sorunlarla karşılaşabilirsiniz.

Android Projesi Oluşturmak ve Çalıştırmak

1. File > New > Project  seçeneğine tıklıyoruz.

2. Açılan proje sihirbazından Android Menüsü altındaki Android Project seçeneğini seçiyor ve Next butonuna tıklıyoruz.


Read the rest of this entry »

 
3 Yorum

Yazan: 06 Eylül 2011 in Android

 

Etiketler: , , , , , , ,

 
%d blogcu bunu beğendi: