Android için kütüphaneye kitap ekleme programı

25 Oca

Android için kütüphaneye kitap ekleme programı

  Android

Bugün sizler için lazım olacağını düşündüğüm bir şey paylaşmak istiyorum. Android son zamanlarda gerçekten çok önemli bir programala dili olarak ortaya çıktı. Bunun için Türkiye’de olmak üzere tüm dünyada bir anda Android Programcıları oluşmaya başladı. Onun için sizlere Android kütüphane örnek programını sizlerle paylaşıyorum. Takıldığınız yapamadığını bir yer olduğunda lütfen ama lütfen sorun… Ayrıca içinde SQLite bağlantılıdır.

Dipçe: Arkadaşlar bunu çalışmanız sırasında size hata vermemesi için lütfen önce bir sanal Android makina, telefon oluşturun ve AndroidManifest.xml dosyasından değerleri 22 yapın.

Database.java

package com.mobilhanem.sqllitedatabase;

import java.util.ArrayList;
import java.util.HashMap;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class Database extends SQLiteOpenHelper {

 // All Static variables
 // Database Version
 private static final int DATABASE_VERSION = 1;

 // Database Name
 private static final String DATABASE_NAME = "sqllite_database";//database adı

 private static final String TABLE_NAME = "kitap_listesi";
 private static String KITAP_ADI = "kitap_adi";
 private static String KITAP_ID = "id";
 private static String KITAP_YAZARI = "yazar";
 private static String KITAP_BASIM_YILI = "yil";
 private static String KITAP_FIYATI = "fiyat";
 
 public Database(Context context) {
 super(context, DATABASE_NAME, null, DATABASE_VERSION);
 }

 
 @Override
 public void onCreate(SQLiteDatabase db) { // Databesi oluşturuyoruz.Bu methodu biz çağırmıyoruz. Databese de obje oluşturduğumuzda otamatik çağırılıyor.
 String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
 + KITAP_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," 
 + KITAP_ADI + " TEXT,"
 + KITAP_YAZARI + " TEXT,"
 + KITAP_BASIM_YILI + " TEXT,"
 + KITAP_FIYATI + " TEXT" + ")";
 db.execSQL(CREATE_TABLE);
 }


 

 public void kitapSil(int id){ //id si belli olan row u silmek için
 
 SQLiteDatabase db = this.getWritableDatabase();
 db.delete(TABLE_NAME, KITAP_ID + " = ?",
 new String[] { String.valueOf(id) });
 db.close();
 }
 
 public void kitapEkle(String kitap_adi, String kitap_yazari,String kitap_basim_yili,String kitap_fiyat) { 
 //kitapEkle methodu ise adı üstünde Databese veri eklemek için 
 SQLiteDatabase db = this.getWritableDatabase();
 ContentValues values = new ContentValues();
 values.put(KITAP_ADI, kitap_adi);
 values.put(KITAP_YAZARI, kitap_yazari);
 values.put(KITAP_BASIM_YILI, kitap_basim_yili);
 values.put(KITAP_FIYATI, kitap_fiyat);

 db.insert(TABLE_NAME, null, values);
 db.close(); //Database Bağlantısını kapattık*/
 }
 
 
 public HashMap kitapDetay(int id){
 //Databeseden id si belli olan row u çekmek için.
 //Bu methodda sadece tek row değerleri alınır.
 
 //HashMap bir çift boyutlu arraydir.anahtar-değer ikililerini bir arada tutmak için tasarlanmıştır.
 //mesala map.put("x","300"); mesala burda anahtar x değeri 300.
 
 HashMap kitap = new HashMap();
 String selectQuery = "SELECT * FROM " + TABLE_NAME+ " WHERE id="+id;
 
 SQLiteDatabase db = this.getReadableDatabase();
 Cursor cursor = db.rawQuery(selectQuery, null);
 // Move to first row
 cursor.moveToFirst();
 if(cursor.getCount() > 0){
 kitap.put(KITAP_ADI, cursor.getString(1));
 kitap.put(KITAP_YAZARI, cursor.getString(2));
 kitap.put(KITAP_BASIM_YILI, cursor.getString(3));
 kitap.put(KITAP_FIYATI, cursor.getString(4)); 
 }
 cursor.close();
 db.close();
 // return kitap
 return kitap;
 }
 
 public ArrayList> kitaplar(){
 
 //Bu methodda ise tablodaki tüm değerleri alıyoruz
 //ArrayList adı üstünde Array lerin listelendiği bir Array.Burda hashmapleri listeleyeceğiz
 //Herbir satırı değer ve value ile hashmap a atıyoruz. Her bir satır 1 tane hashmap arrayı demek.
 //olusturdugumuz tüm hashmapleri ArrayList e atıp geri dönüyoruz(return).
 
 SQLiteDatabase db = this.getReadableDatabase();
 String selectQuery = "SELECT * FROM " + TABLE_NAME;
 Cursor cursor = db.rawQuery(selectQuery, null);
 ArrayList> kitaplist = new ArrayList>();
 
 if (cursor.moveToFirst()) {
 do {
 HashMap map = new HashMap();
 for(int i=0; i

KitapDetay.java

package com.mobilhanem.sqllitedatabase;

import java.util.HashMap;

import com.mobilhanem.sqlliteexample.R;

import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class KitapDetay extends Activity {
 Button b1,b2;
 TextView t1,t2,t3,t4;
 int id;
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_kitapdetay);
 
 ActionBar actionBar = getActionBar();
 actionBar.setDisplayHomeAsUpEnabled(true);
 actionBar.setTitle("Kitap Listesi");
 
 b1 = (Button)findViewById(R.id.button1);
 b2 = (Button)findViewById(R.id.button2);
 
 t1 = (TextView)findViewById(R.id.adi);
 t2 = (TextView)findViewById(R.id.yazari);
 t3 = (TextView)findViewById(R.id.yili);
 t4 = (TextView)findViewById(R.id.fiyati);

 Intent intent=getIntent();
 id = intent.getIntExtra("id", 0);//id değerini integer olarak aldık. Burdaki 0 eğer değer alınmazsa default olrak verilecek değer
 
 Database db = new Database(getApplicationContext());
 HashMap map = db.kitapDetay(id);//Bu id li row un değerini hashmap e aldık
 
 t1.setText(map.get("kitap_adi"));
 t2.setText(map.get("yazar").toString());
 t3.setText(map.get("yil").toString());
 t4.setText(map.get("fiyat").toString());
 
 
 b1.setOnClickListener(new View.OnClickListener() {//Kitap düzenle butonuna tıklandıgında tekrardan kitabın id sini gönderdik
 
 public void onClick(View v) {
 Intent intent = new Intent(getApplicationContext(), KitapDuzenle.class);
 intent.putExtra("id", (int)id);
 startActivity(intent);
 }
 });
 
 b2.setOnClickListener(new View.OnClickListener() {
 
 public void onClick(View v) {
 AlertDialog.Builder alertDialog = new AlertDialog.Builder(KitapDetay.this);
 alertDialog.setTitle("Uyarı");
 alertDialog.setMessage("Kitap Silinsin mi?");
 alertDialog.setPositiveButton("Evet", new DialogInterface.OnClickListener() {
 public void onClick(DialogInterface dialog,int which) {
 Database db = new Database(getApplicationContext());
 db.kitapSil(id);
 Toast.makeText(getApplicationContext(), "Kitap Başarıyla Silindi", Toast.LENGTH_LONG).show();
 Intent intent = new Intent(getApplicationContext(), MainActivity.class);
 startActivity(intent);//bu id li kitabı sildik ve Anasayfaya döndük
 finish();
 
 }
 });
 alertDialog.setNegativeButton("Hayır", new DialogInterface.OnClickListener() {
 public void onClick(DialogInterface dialog,int which) {
 
 }
 });
 alertDialog.show(); 
 
 }
 });
 
 
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
 case android.R.id.home:
 finish();
 return true;
 default: return super.onOptionsItemSelected(item); 
 }
 }


}

KitapDuzenle.java

package com.mobilhanem.sqllitedatabase;

import java.util.HashMap;

import com.mobilhanem.sqlliteexample.R;

import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class KitapDuzenle extends Activity {
 Button b1;
 EditText e1,e2,e3,e4;
 int id;
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_kitapduzenle);
 
 ActionBar actionBar = getActionBar();
 actionBar.setDisplayHomeAsUpEnabled(true);
 actionBar.setTitle("Kitap Detay");
 
 b1 = (Button)findViewById(R.id.button1);
 e1 = (EditText)findViewById(R.id.editText1);
 e2 = (EditText)findViewById(R.id.editText2);
 e3 = (EditText)findViewById(R.id.editText3);
 e4 = (EditText)findViewById(R.id.editText4);
 
 Intent intent=getIntent();
 id = intent.getIntExtra("id", 0);
 
 Database db = new Database(getApplicationContext());
 HashMap map = db.kitapDetay(id);
 
 e1.setText(map.get("kitap_adi"));
 e2.setText(map.get("yazar").toString());
 e3.setText(map.get("yil").toString());
 e4.setText(map.get("fiyat").toString());
 
 b1.setOnClickListener(new View.OnClickListener() {
 
 public void onClick(View v) {
 String adi,yazari,yili,fiyati;
 adi = e1.getText().toString();
 yazari = e2.getText().toString();
 yili = e3.getText().toString();
 fiyati = e4.getText().toString();
 if(adi.matches("") || yazari.matches("") || yili.matches("") || fiyati.matches("") ){
 Toast.makeText(getApplicationContext(), "Tüm Bilgileri Eksiksiz Doldurunuz", Toast.LENGTH_LONG).show();
 }else{
 Database db = new Database(getApplicationContext());
 db.kitapDuzenle(adi, yazari, yili, fiyati,id);//gönderdiğimiz id li kitabın değperlerini güncelledik.
 db.close();
 Toast.makeText(getApplicationContext(), "Kitabınız Başarıyla Düzenlendi.", Toast.LENGTH_LONG).show();
 Intent intent = new Intent(getApplicationContext(), MainActivity.class);
 startActivity(intent);
 finish();
 }
 
 
 }
 });
 
 
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
 case android.R.id.home:
 finish();
 return true;
 default: return super.onOptionsItemSelected(item); 
 }
 }


}


KitapEkle.java

package com.mobilhanem.sqllitedatabase;

import com.mobilhanem.sqlliteexample.R;

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class KitapEkle extends Activity {
 Button b1;
 EditText e1,e2,e3,e4;
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_kitapekle);
 
 ActionBar actionBar = getActionBar();
 actionBar.setDisplayHomeAsUpEnabled(true);
 actionBar.setTitle("Kitap Listesi");
 b1 = (Button)findViewById(R.id.button1);
 e1 = (EditText)findViewById(R.id.editText1);
 e2 = (EditText)findViewById(R.id.editText2);
 e3 = (EditText)findViewById(R.id.editText3);
 e4 = (EditText)findViewById(R.id.editText4);
 
 b1.setOnClickListener(new View.OnClickListener() {
 
 public void onClick(View v) {
 String adi,yazari,yili,fiyati;
 adi = e1.getText().toString();
 yazari = e2.getText().toString();
 yili = e3.getText().toString();
 fiyati = e4.getText().toString();
 if(adi.matches("") || yazari.matches("") || yili.matches("") || fiyati.matches("") ){
 Toast.makeText(getApplicationContext(), "Tüm Bilgileri Eksiksiz Doldurunuz", Toast.LENGTH_LONG).show();
 }else{
 Database db = new Database(getApplicationContext());
 db.kitapEkle(adi, yazari, yili, fiyati);//kitap ekledik
 db.close();
 Toast.makeText(getApplicationContext(), "Kitabınız Başarıyla Eklendi.", Toast.LENGTH_LONG).show();
 e1.setText("");
 e2.setText("");
 e3.setText("");
 e4.setText("");
 }
 
 
 }
 });
 
 
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
 case android.R.id.home:
 finish();
 return true;
 default: return super.onOptionsItemSelected(item); 
 }
 }


}





MainActivity.java

 package com.mobilhanem.sqllitedatabase;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import com.mobilhanem.sqlliteexample.R;
 import android.os.Bundle;
 import android.app.ActionBar;
 import android.app.Activity;
 import android.content.Intent;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
 import android.widget.ListView;
 import android.widget.Toast;
 
 public class MainActivity extends Activity {
 
 ListView lv;
 ArrayAdapter adapter; 
 ArrayList> kitap_liste;
 String kitap_adlari[];
 int kitap_idler[];
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 ActionBar actionBar = getActionBar();
 actionBar.setDisplayHomeAsUpEnabled(false);
 }
 
 public void onResume()
 { //neden onResume metodu kullandığımı ders içinde anlattım.
 super.onResume();
 Database db = new Database(getApplicationContext()); // Db bağlantısı oluşturuyoruz. İlk seferde database oluşturulur.
 kitap_liste = db.kitaplar();//kitap listesini alıyoruz
 if(kitap_liste.size()==0){//kitap listesi boşsa
 Toast.makeText(getApplicationContext(), "Henüz Kitap Eklenmemiş.nYukarıdaki + Butonundan Ekleyiniz", Toast.LENGTH_LONG).show();
 }else{
 kitap_adlari = new String[kitap_liste.size()]; // kitap adlarını tutucamız string arrayi olusturduk.
 kitap_idler = new int[kitap_liste.size()]; // kitap id lerini tutucamız string arrayi olusturduk.
 for(int i=0;i(this, R.layout.list_item, R.id.kitap_adi, kitap_adlari);
 lv.setAdapter(adapter);
 
 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 public void onItemClick(AdapterView arg0, View arg1, int arg2,
 long arg3) {
 //Listedeki her hangibir yere tıklandıgında tıklanan satırın sırasını alıyoruz.
 //Bu sıra id arraydeki sırayla aynı oldugundan tıklanan satırda bulunan kitapın id sini alıyor ve kitap detaya gönderiyoruz.
 Intent intent = new Intent(getApplicationContext(), KitapDetay.class);
 intent.putExtra("id", (int)kitap_idler[arg2]);
 startActivity(intent);
 
 }
 });
 }
 
 }
 
 @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 super.onCreateOptionsMenu(menu);
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 // Handle presses on the action bar items
 switch (item.getItemId()) {
 case R.id.ekle:
 KitapEkle();
 return true;
 default:
 return super.onOptionsItemSelected(item);
 }
 }
 
 private void KitapEkle() {
 Intent i = new Intent(MainActivity.this, KitapEkle.class);
 startActivity(i);
 }
 }


              

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir