<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Android arşivleri - Sercan Çepni</title>
	<atom:link href="https://www.sercancepni.net.tr/category/android/feed" rel="self" type="application/rss+xml" />
	<link>https://www.sercancepni.net.tr/category/android</link>
	<description>Kişisel Blog</description>
	<lastBuildDate>Wed, 15 Mar 2017 19:12:57 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Android Date Time Picker Kullanımı</title>
		<link>https://www.sercancepni.net.tr/android-date-time-picker-kullanimi</link>
					<comments>https://www.sercancepni.net.tr/android-date-time-picker-kullanimi#comments</comments>
		
		<dc:creator><![CDATA[Sercan Çepni]]></dc:creator>
		<pubDate>Wed, 15 Mar 2017 19:12:57 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Date Picker Kullanımı]]></category>
		<category><![CDATA[Time Picker Kullanımı]]></category>
		<guid isPermaLink="false">http://www.sercancepni.net.tr/?p=1250</guid>

					<description><![CDATA[<p>Bu makalede ayrıntılı olarak Android Date Time Picker Kullanımı kullanımı anlatacağım sanki tek bir widget miş gibi duruyor ancak&#160;Date Picker ve&#160;Time Picker olarak 2 adet widget&#8217;dir. Adlarından da anlayacağınız üzere biri tarih seçimi diğeri ise zaman seçimi için kullanılıyor. Genellikle kullanıcıdan tarihsel veya zamansal bilgi istendiğinde kullanılıyor. &#160;Lafı fazla uzatmadan ilk olarak Data Picker ile [&#8230;]</p>
<p><a href="https://www.sercancepni.net.tr/android-date-time-picker-kullanimi">Android Date Time Picker Kullanımı</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bu makalede ayrıntılı olarak <a href="http://www.sercancepni.net.tr/android-date-time-picker-kullanimi"><strong>Android Date Time Picker Kullanımı</strong></a> kullanımı anlatacağım sanki tek bir widget miş gibi duruyor ancak&nbsp;<strong>Date Picker</strong> ve&nbsp;<strong>Time Picker</strong> olarak 2 adet widget&#8217;dir. Adlarından da anlayacağınız üzere biri tarih seçimi diğeri ise zaman seçimi için kullanılıyor. Genellikle kullanıcıdan tarihsel veya zamansal bilgi istendiğinde kullanılıyor. &nbsp;Lafı fazla uzatmadan ilk olarak Data Picker ile makalemize başlayalım ;</p>
<h2 style="text-align: center;">Android Date Time Picker Kullanımı</h2>
<h3>Date Picker Kullanımı</h3>
<p><figure id="attachment_1253" aria-describedby="caption-attachment-1253" style="width: 300px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="size-full wp-image-1253" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/03/Android-Date-Picker-1-1.jpg" alt="Android Date Picker" width="300" height="507"><figcaption id="caption-attachment-1253" class="wp-caption-text">Android Date Picker</figcaption></figure><br />
Basit bir uygulama yapalım bir button olsun ona tıklandığında Data Picker açılsın ve ordan seçilen tarihi&nbsp;, günü, ayı ve yılı ayrı ayrı yazdıralım arkadaşlar;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="tr.net.sercancepni.datetimepicker.MainActivity"&gt;
    &lt;TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="10dp"
        android:layout_marginTop="16dp"
        android:text="Tarih : " /&gt;
    &lt;TextView
        android:id="@+id/lblTarih"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView"
        android:layout_marginStart="13dp"
        android:layout_toEndOf="@+id/textView" /&gt;
    &lt;TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textView"
        android:layout_below="@+id/textView"
        android:layout_marginTop="15dp"
        android:text="Gün : " /&gt;
    &lt;TextView
        android:id="@+id/lblGun"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/lblTarih"
        android:layout_alignTop="@+id/textView3" /&gt;
    &lt;TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textView3"
        android:layout_below="@+id/textView3"
        android:layout_marginTop="18dp"
        android:text="Ay : " /&gt;
    &lt;TextView
        android:id="@+id/lblAy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/lblGun"
        android:layout_alignTop="@+id/textView5" /&gt;
    &lt;TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textView5"
        android:layout_below="@+id/textView5"
        android:layout_marginTop="15dp"
        android:text="Yıl : " /&gt;
    &lt;TextView
        android:id="@+id/lblYil"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView7"
        android:layout_toEndOf="@+id/lblAy" /&gt;
    &lt;Button
        android:id="@+id/btnTarih"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/lblAy"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="36dp"
        android:text="Tarih Seç" /&gt;
&lt;/RelativeLayout&gt;</pre>
<p>Ekran Görüntüsü ;<br />
<figure id="attachment_1274" aria-describedby="caption-attachment-1274" style="width: 632px" class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-1274" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/03/Date-Picker-Kullanimi-Tasarim-1-1.jpg" alt="Date Picker Kullanımı Tasarım" width="632" height="468"><figcaption id="caption-attachment-1274" class="wp-caption-text">Date Picker Kullanımı Tasarım</figcaption></figure><br />
Gelelim&nbsp;MainActivity &#8216;de gerekli tanımlamaları yapalım ve buton click oluşturalım;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">package tr.net.sercancepni.datetimepicker;
import android.app.DatePickerDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
    TextView lblTarih,lblGun,lblAy,lblYil;
    Button btnTarih;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lblTarih = (TextView) findViewById(R.id.lblTarih);
        lblGun = (TextView) findViewById(R.id.lblGun);
        lblAy = (TextView) findViewById(R.id.lblAy);
        lblYil = (TextView) findViewById(R.id.lblYil);
        btnTarih = (Button) findViewById(R.id.btnTarih);
        btnTarih.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }
        });
    }
}</pre>
<p>Şimdi burada önemli olan bir nokta var arkadaşlar android&#8217;te tarih seçerken aylar 0 dan başlıyor yani ocak ayı sıfırıncı ay olarak gözüküyor o yüzden ayı ekrana basmadan önce ayı +1 artıyoruz ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">Calendar takvim = Calendar.getInstance(); // Takvim objesini oluşturuyoruz.
int year = takvim.get(Calendar.YEAR); //Güncel Yılı alıyoruz.
int month = takvim.get(Calendar.MONTH); //Güncel Ayı alıyoruz.
int day = takvim.get(Calendar.DAY_OF_MONTH); //Güncel Günü alıyoruz.
datePicker = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int yil, int ay,
                          int gun) {
        // TODO Auto-generated method stub
        ay +=1; // Aylar sıfırdan başladığı için ayı +1 ekliyoruz.
        lblTarih.setText( gun + "/" + ay+ "/"+yil); //Ekrana tüm tarihi yazdırıyoruz
        lblGun.setText(String.valueOf(gun)); // Seçilen günü ekrana yazdırıyoruz.
        lblAy.setText(String.valueOf(ay)); // Seçilen ayı ekrana yazdırıyoruz.
        lblYil.setText(String.valueOf(yil)); // Seçilen yılı ekrana yazdırıyoruz.
    }
},year,month,day); //Sırasıyla set edilecek değerleri yazıyoruz.
datePicker.setTitle("Tarih Seçiniz");
datePicker.setButton(DatePickerDialog.BUTTON_POSITIVE, "SEÇ", datePicker);
datePicker.setButton(DatePickerDialog.BUTTON_NEGATIVE, "İPTAL", datePicker);
datePicker.show();</pre>
<p>Kodumuzu buton click içerisine yazdıktan sonra emülatör de çalıştırıyoruz ve ekrana ;<br />
<figure id="attachment_1278" aria-describedby="caption-attachment-1278" style="width: 800px" class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-1278" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/03/Date-Picker-Kullanimi-Tasarim-1-son-1-1.png" alt="Date Picker Kullanımı Tasarım Son" width="800" height="717"><figcaption id="caption-attachment-1278" class="wp-caption-text">Date Picker Kullanımı Tasarım Son</figcaption></figure></p>
<h3>Time Picker Kullanımı</h3>
<p><span style="color: #000000;"><em><strong>Android Date Time Picker Kullanımı</strong></em></span> &#8216;nda sıra geldi TimePicker Kullanımını anlatmaya TimePicker zaman seçici anlamına geliyor zamansal işlemlerde sürekli karşınıza çıkacak bir konu.<br />
<figure id="attachment_1286" aria-describedby="caption-attachment-1286" style="width: 300px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1286" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/03/Android-Time-Picker-Kullanimi-1-1.png" alt="Android Time Picker Kullanımı" width="300" height="409"><figcaption id="caption-attachment-1286" class="wp-caption-text">Android Time Picker Kullanımı</figcaption></figure><br />
Data Picker da yaptığımız örneğin aynısını Time Picker içinde yapalım butona tıklandığında tam zamanı bir TextView yazsın ayrıca saati ve dakikayı ayrı TextView&#8217;lere yazdıralım ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="tr.net.sercancepni.datetimepicker.TimePicker"&gt;
    &lt;TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="10dp"
        android:layout_marginTop="16dp"
        android:text="Zaman : " /&gt;
    &lt;TextView
        android:id="@+id/lblZaman"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView"
        android:layout_marginStart="13dp"
        android:layout_toEndOf="@+id/textView" /&gt;
    &lt;TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textView"
        android:layout_below="@+id/textView"
        android:layout_marginTop="15dp"
        android:text="Saat : " /&gt;
    &lt;TextView
        android:id="@+id/lblSaat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/lblZaman"
        android:layout_alignTop="@+id/textView3" /&gt;
    &lt;TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textView3"
        android:layout_below="@+id/textView3"
        android:layout_marginTop="18dp"
        android:text="Dakika : " /&gt;
    &lt;TextView
        android:id="@+id/lblDakika"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/lblSaat"
        android:layout_alignTop="@+id/textView5" /&gt;
    &lt;Button
        android:id="@+id/btnZaman"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/lblDakika"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="36dp"
        android:text="Zaman Seç" /&gt;
&lt;/RelativeLayout&gt;</pre>
<p>Ekran Görüntüsü ;<br />
<figure id="attachment_1287" aria-describedby="caption-attachment-1287" style="width: 527px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1287" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/03/Android-Time-Picker-ornek-tasarim-1-1.png" alt="Android Time Picker Örnek Tasarım" width="527" height="431"><figcaption id="caption-attachment-1287" class="wp-caption-text">Android Time Picker Örnek Tasarım</figcaption></figure><br />
Gelelim Activitimizde gerekli olan tanımlamaları yapmaya ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public class TimePicker extends AppCompatActivity {
    TextView lblZaman,lblSaat,lblDakika;
    Button btnZaman;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_time_picker);
        lblZaman = (TextView) findViewById(R.id.lblZaman);
        lblSaat = (TextView) findViewById(R.id.lblSaat);
        lblDakika = (TextView) findViewById(R.id.lblDakika);
        btnZaman = (Button) findViewById(R.id.btnZaman);
        btnZaman.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }
        });
    }
}</pre>
<p>btnZaman tıklantığında yapılacak olan işlemleri yapalım (Kodların yanlarına tam olarak neler yaptığını yazdığım için ayrıca uzun uzun anlatmıyorum);</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">btnZaman.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Calendar mcurrentTime = Calendar.getInstance();//
        int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);//Güncel saati aldık
        int minute = mcurrentTime.get(Calendar.MINUTE);//Güncel dakikayı aldık
        TimePickerDialog timePicker; //Time Picker oluşturduk
        //TimePicker oluşturuyor ve click listener ekliyoruz
        timePicker = new TimePickerDialog(TimePicker.this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(android.widget.TimePicker view, int hourOfDay, int minute) {
                lblZaman.setText( hourOfDay + ":" + minute); //Ayarla butonu tıklandığında lblZaman'a yazdırıyoruz3
                lblSaat.setText(hourOfDay + " Saat"); // Sadece Saati Yazdırıyoruz
                lblDakika.setText(minute + " Dakika"); // Sadece Dakikayı yazdırıyoruz
            }
        }, hour, minute, true); //true 24 saatlik sistem için
        timePicker.setTitle("Saat Seçiniz");
        timePicker.setButton(DatePickerDialog.BUTTON_POSITIVE, "Ayarla", timePicker);
        timePicker.setButton(DatePickerDialog.BUTTON_NEGATIVE, "İptal", timePicker);
        timePicker.show();
    }
});</pre>
<p>Gördüğünüz gibi <a href="http://www.sercancepni.net.tr/android-date-time-picker-kullanimi" target="_blank" rel="noopener noreferrer">Android Date Time Picker Kullanımı</a> gayet basit android &#8216;de istediğiniz tüm zamansal işlemleri yapabilirsiniz ayrıca projeyi tam olarak incelemek isterseniz hemen aşağıda örnek projeyi paylaştım indirip iyice inceleyebilirsiniz ;</p>
<h4 style="text-align: center;"><span style="color: #ff0000;"><strong><a style="color: #ff0000;" href="http://www.sercancepni.net.tr/dosyalar/android/DateTimePicker.rar" target="_blank" rel="noopener noreferrer">Örnek Projeyi İndirmek İçin Tıklayın</a></strong></span></h4>
<p><a href="https://www.sercancepni.net.tr/android-date-time-picker-kullanimi">Android Date Time Picker Kullanımı</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sercancepni.net.tr/android-date-time-picker-kullanimi/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Android SQLite Kullanımı</title>
		<link>https://www.sercancepni.net.tr/android-sqlite-kullanimi</link>
					<comments>https://www.sercancepni.net.tr/android-sqlite-kullanimi#comments</comments>
		
		<dc:creator><![CDATA[Sercan Çepni]]></dc:creator>
		<pubDate>Sat, 25 Feb 2017 13:10:12 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Android SQLite]]></category>
		<category><![CDATA[Android SQLite Düzenleme]]></category>
		<category><![CDATA[Android SQLite Ekleme]]></category>
		<category><![CDATA[Android SQLite Okuma]]></category>
		<category><![CDATA[Android SQLite Silme]]></category>
		<guid isPermaLink="false">http://www.sercancepni.net.tr/?p=1190</guid>

					<description><![CDATA[<p>Android&#8217;e yeni başlayanların ilk başlarda çok zorlandığı Android SQLite Kullanımı anlatacağım arkadaşlar. İlk olarak SQLite ne olduğundan bahsedeyim sizlere; C/C++ programlama dilleriyle geliştirilmiş sunucu gereksinimi olmayan bir SQL veritabanı motorudur. SQLite, Richard Hipp tarafından 2000 yılında tasarlandı. O dönemde General Dynamics firmasında Amerikan Donanması için yapılan bir projede çalışan Hipp, bir veritabanı kurulumu ya da yönetim paneline [&#8230;]</p>
<p><a href="https://www.sercancepni.net.tr/android-sqlite-kullanimi">Android SQLite Kullanımı</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[<p>Android&#8217;e yeni başlayanların ilk başlarda çok zorlandığı <a href="http://www.sercancepni.net.tr/android-sqlite-kullanimi"><strong><span style="color: #ff0000;">Android SQLite Kullanımı</span></strong></a> anlatacağım arkadaşlar. İlk olarak SQLite ne olduğundan bahsedeyim sizlere; C/C++ programlama dilleriyle geliştirilmiş sunucu gereksinimi olmayan bir SQL veritabanı motorudur. <a href="http://sqlite.org/" target="_blank" rel="noopener noreferrer"><strong>SQLite</strong></a>, Richard Hipp tarafından 2000 yılında tasarlandı. O dönemde General Dynamics firmasında Amerikan Donanması için yapılan bir projede çalışan Hipp, bir veritabanı kurulumu ya da yönetim paneline ihtiyaç duymayan program yazmaya çalışırken SQLite&#8217;ı geliştirdi.<br />
Anlayacağınız üzere SQLite bir veritabanı dır ancak hemen aklınıza MSSQL, MYSQL gibi dir diye düşünmeyin baş da da belirttiğim gibi sunucu gereksinimi olmayan ve paneli olmayan basit bir veritabanıdır. O yüzden SQLite&#8217;tı kullanmadan önce projeniz için saklayacağınız verilerin boyutları yüksek ise veya zamanla sürekli bilgi girişi ile saklanacak verinin boyutu artacak ise kesinlikle önermiyorum. Örneğin; Kullanıcı bilgileri, anlık bilgi notları yada anlık cache sistemi gibi şeylerde işinize çok yaracaktır.</p>
<h2>Android SQLite Kullanımı</h2>
<h3>SQLiteBrowser</h3>
<p>SQLiteBrowser ile SQLite veritabanlarının içerisinde yer alan verileri görüntüleye bilmemizi sağlayan bir program. SQLiteBrowser sayesinde, veritabanı üzerinde yaptığınız işlemlerin doğru sonuçlar verip vermediğini öğrenebiliriz, elinizdeki veritabanının içeriğinde hangi verilerin olduğunu düzenli bir şekilde görüntüleyebiliriz.<br />
Bu programı indirmek için şu linke tıklayın ve işletim sisteminize en uygun olanı indirin :  <strong><span style="color: #ff0000;"><a style="color: #ff0000;" href="http://sqlitebrowser.org/" target="_blank" rel="noopener noreferrer">SQLiteBrowser</a></span></strong></p>
<h3>1-) Giriş: Veritabanı ve Tablo Oluşturma</h3>
<p>İlk olarak Android Studio açıp empty activity bir proje oluşturuyoruz. Projemiz oluştuktan sonra yeni bir class oluşturuyoruz, yeni class oluşturmak için izleyeceğiniz yol ise <strong>Package Name (Örnek : tr.net.sercancepni.sqlitekullanimi) sağ tıklayın <span style="color: #ff0000;">&gt;</span> New <span style="color: #ff0000;">&gt;</span> Java Class </strong>tıklayın.<br />
<figure id="attachment_1211" aria-describedby="caption-attachment-1211" style="width: 900px" class="wp-caption aligncenter"><a href="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-1-1-1.jpg"><img loading="lazy" decoding="async" class="size-large wp-image-1211" src="http://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-1-1024x576.jpg" alt="Android Java Class Olusturma" width="900" height="506" /></a><figcaption id="caption-attachment-1211" class="wp-caption-text">Android Java Class Olusturma</figcaption></figure><br />
Name kısmına class&#8217;ımızın adını yazıyoruz ben VeriTabani yazdım ( <span style="color: #ff0000;"><strong>Lütfen Türkçe Karakter Kullanmayın Allah Adı Veriyom Artık 🙁</strong></span> )<br />
<figure id="attachment_1213" aria-describedby="caption-attachment-1213" style="width: 531px" class="wp-caption aligncenter"><a href="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-2-1-1.jpg"><img loading="lazy" decoding="async" class="wp-image-1213 size-full" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-2-1-1.jpg" alt="Android Java Class Olusturma 2" width="531" height="432" /></a><figcaption id="caption-attachment-1213" class="wp-caption-text">Android Java Class Olusturma 2</figcaption></figure><br />
<figure id="attachment_1215" aria-describedby="caption-attachment-1215" style="width: 900px" class="wp-caption aligncenter"><a href="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-3-1-1.jpg"><img loading="lazy" decoding="async" class="size-large wp-image-1215" src="http://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-3-1024x576.jpg" alt="Android Java Class Olusturma 3" width="900" height="506" /></a><figcaption id="caption-attachment-1215" class="wp-caption-text">Android Java Class Olusturma 3</figcaption></figure><br />
Şimdi Class&#8217;ımız oluştu ancak oluşan bu sınıf sade ve standart bir sınıf biz bunu SQLite sınıfına dönüştürmemiz lazım bunu yapmak içinde aşağıdaki gibi düzelteceğiniz ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public class VeriTabani extends SQLiteOpenHelper {
}</pre>
<p>Kod yazarken unutmayın SQLiteOpen&#8230; şeklinde yazarken kodu otomatik olarak bir pencere açılır ve yazacağınız kodun tam ismi çıkar çıkınca direk ENTER diyin böylelikle otomatik import gelir ve sorunla karşılaşmazsınız.<br />
<figure id="attachment_1217" aria-describedby="caption-attachment-1217" style="width: 403px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1217" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-4-1-1.jpg" alt="extends SQLiteOpenHelper" width="403" height="236" /><figcaption id="caption-attachment-1217" class="wp-caption-text">extends SQLiteOpenHelper</figcaption></figure><br />
Ancak gördüğünüz gibi bir sorun var bu sorunu gidermek için SQLiteOpenHelper yazısına tılayın hemen sol tarafta kırmızı bir ampul çıkacak ona tıklayın ve aşağıdaki gibi sorunu çözmek için 2 adet öneri bulunacak ;<br />
<figure id="attachment_1218" aria-describedby="caption-attachment-1218" style="width: 744px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1218" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-5-1-1.jpg" alt="Implement Methods" width="744" height="393" /><figcaption id="caption-attachment-1218" class="wp-caption-text">Implement Methods</figcaption></figure><br />
İlk seçenek olan Implement Methods tıklayın karşınıza oluşturmak zorunda olduğunuz iki adet method çıkartacak bunlar onCreate yani oluşturma method&#8217;u ve onUpgrade yani güncelleme method&#8217;u dur direk OK diyerek class&#8217;ımıza bu methodları ekleyelim.<br />
<figure id="attachment_1219" aria-describedby="caption-attachment-1219" style="width: 376px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1219" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-6-1-1.jpg" alt="Implement Methods" width="376" height="588" /><figcaption id="caption-attachment-1219" class="wp-caption-text">Implement Methods</figcaption></figure><br />
<figure id="attachment_1220" aria-describedby="caption-attachment-1220" style="width: 657px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1220" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-7-1-1.jpg" alt="Android Java Class Olusturma" width="657" height="402" /><figcaption id="caption-attachment-1220" class="wp-caption-text">Android Java Class Olusturma</figcaption></figure><br />
Yukarıda gördüğünüz gibi methodlarımız class&#8217;ımıza dahil oldu ancak hata devam ediyor tekrardan SQLiteOpenHelper yazsına tıklayalım ve arkadasından çıkan kırmızı ampüle tıklayalım ;<br />
<figure id="attachment_1221" aria-describedby="caption-attachment-1221" style="width: 636px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1221" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-olusturma-8-1-1.jpg" alt="Android Java Class Olusturma" width="636" height="382" /><figcaption id="caption-attachment-1221" class="wp-caption-text">Android Java Class Olusturma</figcaption></figure><br />
Create constructor matching super hatasına tıklayalım ve karşımıza çıkan pencereden ilk method&#8217;a tıklayarak OK diyelim oluşturduğunuz class son hali aşağıdaki gibi ise şu ana kadar her şeyi düzgün yapmışsınız demektir.<br />
<img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1222" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-java-class-son-hali-1-1.jpg" alt="" width="867" height="458" /><br />
Şimdi gelelim veri tabanımızı ve tablomuzu oluşturmaya ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public class VeriTabani extends SQLiteOpenHelper {
 private static final String DATABASE_NAME = "musteriler";
 private static final int DATABASE_VERSION = 1;
 private static final String TABLO_KISILER = "kisiler";
 private static final String ROW_ID_ = "id";
 private static final String ROW_AD_ = "ad";
 private static final String ROW_SOYAD_ = "soyad";
 private static final String ROW_TEL_ = "tel";
 public VeriTabani(Context context) {
 super(context, DATABASE_NAME, null, DATABASE_VERSION);
 }
 @Override
 public void onCreate(SQLiteDatabase db) {
 }
 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 }
}</pre>
<p>Veritabanımızı ve tablomuz için gerekli kısımlarını oluşturduk ve ayrıca Context de kendimize göre değiştirdik şimdi sıra geldi onCreate içerisinde tablomuzun yapısını oluşturmaya ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + TABLO_KISILER + "("
            + ROW_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + ROW_AD + " TEXT NOT NULL, "
            + ROW_SOYAD + " TEXT NOT NULL, "
            + ROW_TEL + " TEXT NOT NULL)");
}</pre>
<p>Evet bu şekilde tablomuzu oluşturuyoruz arkadaşlar şuan sadece tek bir tablo oluşturdum eğer birden fazla tablonuz olacak ise ona göre eklemeleri yapabilirsiniz.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLO_KISILER);
    onCreate(db);
}</pre>
<p>Son olarak ta onUpgrade method&#8217;unuda yukarıda ki gibi düzenliyoruz.  Bunun amacı eğer daha öncede eski versiyona ait aynı isimde bir tablo varsa silip yerine yeni versiyondaki tabloyu oluşturmak. Oluşturduğumuz VeriTabani.java dosyamızın son hali aşağıdaki gibidir;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public class VeriTabani extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "musteriler";
    private static final int DATABASE_VERSION = 1;
    private static final String TABLO_KISILER = "kisiler";
    private static final String ROW_ID = "id";
    private static final String ROW_AD = "ad";
    private static final String ROW_SOYAD = "soyad";
    private static final String ROW_TEL = "tel";
    public VeriTabani(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + TABLO_KISILER + "("
                + ROW_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                + ROW_AD + " TEXT NOT NULL, "
                + ROW_SOYAD + " TEXT NOT NULL, "
                + ROW_TEL + " TEXT NOT NULL)");
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        onCreate(db);
    }
}</pre>
<h3>2-) Tasarım</h3>
<p><span style="color: #ff0000;"><strong><a style="color: #ff0000;" href="http://www.sercancepni.net.tr/android-sqlite-kullanimi" target="_blank" rel="noopener noreferrer">Android SQLite Kullanımı</a></strong></span> için hazırladığım proje genel olarak kişileri SQLite kaydetmemizi sağlayacak o yüzden ona uygun olarak basit bir tasarım yaptım 3 adet editText 4 Adet Button 1 Adet ListView kullandım ;<br />
<figure id="attachment_1241" aria-describedby="caption-attachment-1241" style="width: 601px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1241 size-full" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-tasarim-2-1-2-1-1-1.jpg" alt="Android SQLite Örnek Tasarım" width="601" height="472" /><figcaption id="caption-attachment-1241" class="wp-caption-text">Android SQLite Örnek Tasarım</figcaption></figure></p>
<pre class="EnlighterJSRAW" data-enlighter-language="xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;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"
    tools:context="tr.net.sercancepni.sqlitekullanimi.MainActivity"&gt;
    &lt;EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:hint="İsim"
        android:ems="10"
        android:id="@+id/etAd"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" /&gt;
    &lt;EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:hint="Soyad"
        android:ems="10"
        android:id="@+id/etSoyad"
        android:layout_below="@+id/etAd"
        android:layout_alignStart="@+id/etAd" /&gt;
    &lt;EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:hint="Telefon"
        android:ems="10"
        android:layout_below="@+id/etSoyad"
        android:layout_alignEnd="@+id/etSoyad"
        android:id="@+id/etTel" /&gt;
    &lt;Button
        android:text="Kaydet"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="18dp"
        android:id="@+id/btnKaydet"
        android:layout_below="@+id/etTel"
        android:layout_toStartOf="@+id/etTel" /&gt;
    &lt;ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/VeriListele"
        android:layout_below="@+id/btnKaydet"
        android:layout_alignParentStart="true"
        android:layout_marginTop="16dp"
        android:layout_alignParentBottom="true" /&gt;
    &lt;Button
        android:id="@+id/btnListele"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Listele"
        android:layout_marginStart="10dp"
        android:layout_above="@+id/VeriListele"
        android:layout_toEndOf="@+id/btnKaydet" /&gt;
    &lt;Button
        android:id="@+id/btnSil"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="11dp"
        android:text="Sil"
        android:layout_above="@+id/VeriListele"
        android:layout_toEndOf="@+id/btnListele" /&gt;
    &lt;Button
        android:id="@+id/btnDuzenle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/btnSil"
        android:layout_marginStart="14dp"
        android:layout_toEndOf="@+id/btnSil"
        android:text="Düzenle" /&gt;
&lt;/RelativeLayout&gt;</pre>
<p>Kaydet dediğimiz de verilerimiz veritabanımıza kaydedilecek ayrıca veri tabanımızda kayıtlı verileri görmek içinde listele tuşuna basıldığında verilerimiz ListView gözükecek arkadaşlar.</p>
<h3>3-) Veri Ekleme (INSERT)</h3>
<p>Tasarım ile işimiz bittikten sonra sıra geldi veri ekleme işine, hemen aklınıza uzun uzun SQL sorguları gelmesin gerçekten çok kolay bir şekilde verilerimizi kaydedeceğiz bunu için VeriTabani.java class&#8217;ımızın içerisinde en sona veri ekleme methodu yazıyoruz ve doğal olarak try catch boluğu içerisinde yazıyoruz böylelikle eğer veritabanı bağlanıtsı sırasında bir sorun oluşursa uygulamanın kapanmasını önlemiş olacağız ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public void VeriEkle(String ad, String soyad, String tel){
    SQLiteDatabase db = this.getWritableDatabase();
    try {
        ContentValues cv = new ContentValues();
        cv.put(ROW_AD, ad);
        cv.put(ROW_SOYAD, soyad);
        cv.put(ROW_TEL, tel);
        db.insert(TABLO_KISILER, null,cv);
    }catch (Exception e){
    }
    db.close();
}</pre>
<p>Oluşturduğumuz bu method sayesinde, verilerimizi bu method gönderdiğimiz de kolayca veri tabanımıza kaydetmiş olacağız.<br />
Sıra geldi MainActivity.java yapılacak işlemler ilk olarak tasarımımızda kullandığımız Widgets leri tanımlayalım ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public class MainActivity extends AppCompatActivity {
    private EditText etAd,etSoyad,etTel;
    private Button btnKaydet, btnListele,btnSil,btnDuzenle;
    private ListView VeriListele;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        etAd = (EditText) findViewById(R.id.etAd);
        etSoyad = (EditText) findViewById(R.id.etSoyad);
        etTel = (EditText) findViewById(R.id.etTel);
        btnKaydet = (Button) findViewById(R.id.btnKaydet);
        btnListele = (Button) findViewById(R.id.btnListele);
        VeriListele = (ListView) findViewById(R.id.VeriListele);
        btnSil = (Button) findViewById(R.id.btnSil);
        btnDuzenle = (Button) findViewById(R.id.btnDuzenle);</pre>
<p>Tanımlamaları yaptıktan sonra kaydet butonuna setOnClickListener yapalım ve kayıt için gerekli kodlarımızı yazalım ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">btnKaydet.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String gelenAd = etAd.getText().toString();
        String gelenSoyad = etSoyad.getText().toString();
        String gelenTel = etTel.getText().toString();
        VeriTabani vt = new VeriTabani(MainActivity.this);
        vt.VeriEkle(gelenAd, gelenSoyad, gelenTel);
    }
});</pre>
<p><strong>Arkadaşlar önemli bir notum olacak çoğu kişi takıldığı bir yer var oda şu hani biz onCreate method içerisinde tablomuzu oluşturduk ya şu şekilde ; </strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + TABLO_KISILER + "("
            + ROW_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + ROW_AD + " TEXT NOT NULL, "
            + ROW_SOYAD + " TEXT NOT NULL, "
            + ROW_TEL + " TEXT NOT NULL)");
}</pre>
<p><strong>Bu kısma dikkatlice bakarsanız eğer çift tırnakların başlangıç ve bitiş kısımlarında birer boşluk var eğer bu boşlukları koymaz iseniz tablonuz düzgün oluşmaz ve verilerinizi kaydedemezsiniz!!!!! Örnek hata ;</strong><br />
<img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1233" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Android-hata-1-1.jpg" alt="" width="959" height="53" /><br />
<strong>Gördüğünüz gibi hata da ad adında bir sütun tanımlanmamış gözüküyor boşlukları koymayı unuttuğunuzda adTEXT adında bir sütun oluşturmuş ve bu yüzdende verileri kaydetmemiş!!!!!</strong><br />
Dediğim noktalara dikkat ettiyseniz verileri kaydetmişsinizdir şimdi gelelim kaydettiğimiz verileri ListView ile ekrana verilerimizi yazdıralım.</p>
<h3>4-) Veri Listeleme (Select)</h3>
<p><a href="http://www.sercancepni.net.tr/android-sqlite-kullanimi" target="_blank" rel="noopener noreferrer"><span style="color: #ff0000;"><strong>Android SQLite Kullanımı</strong></span></a> &#8216;nda sırada verilerimizi ListView ile ekranda göstermek VeriTabani.java class içerisinde VeriListele şeklinde bir methot oluşturalım ve içerisinde yer alacak kodlar;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public List&lt;String&gt; VeriListele(){
    List&lt;String&gt; veriler = new ArrayList&lt;String&gt;();
    SQLiteDatabase db = this.getReadableDatabase();
    try {
        String[] stunlar = {ROW_ID,ROW_AD,ROW_SOYAD,ROW_TEL};
        Cursor cursor = db.query(TABLO_KISILER, stunlar,null,null,null,null,null);
        while (cursor.moveToNext()){
            veriler.add(cursor.getInt(0)
                    + " - "
                    + cursor.getString(1)
                    + " - "
                    + cursor.getString(2)
                    + " - "
                    + cursor.getString(3));
        }
    }catch (Exception e){
    }
    db.close();
    return veriler;
}</pre>
<p>Methot içerisinde ilk olarak bir liste tanımlıyoruz ardından bu class içerisinde oluşturduğumuz veri tabanımızdan okunabilir bir veritabanı çağırıyoruz &#8221; <strong>this.getReadableDatabase()</strong> &#8221; veri ekleme kısmına geri dönerseniz orada yazılabilir bir veritabanı çağırmıştık, burada sadece okuma işlemi yapacağımız için okunabilir bir veritabanı çağırdım. Ardından try-catch bloğumuzu oluşturuyoruz, stunlar adında bir dizi oluşturuyoruz buraya tablomuzu oluştururken yaptığımız sütunları çağırıyoruz ardından <strong>Cursor </strong>objesi tanımlıyoruz bu obje sayesinde verilerimizi basit bir şekilde dolaşarak listeye atacağız. While döngüsü oluşturuyoruz ve koşuluna &#8220;<strong>cursor.moveToNext()</strong>&#8221; yazıyoruz yani bir sonrakine geç diyoruz eğer bir sonraki veri yok ise while döngüsü duracak ardından listemize her döngüde yeni bir veri ekliyoruz .add ile.<br />
Şimdi veritabanımızda yer alan sırasıyla kayıtlı id, isim, soyisim, ve tel listeye atacağız. İlk olarak int bir veri yani id yi listeye ekleyeceğimiz için &#8220;<strong>cursor.getInt(0)</strong>&#8221;  burada iki önemli nokta var birincisi getInt bu şu demek ben int bir veri çağırıyorum ikincisi 0 (Sıfır) bunun anlamı ilk index yani id çağırıyorum yani toparlayacak olursak ben ilk sırada yer alan id int tanımlamıştım veritabanını oluştururken doğal olarak ve ilk sırada yer alıyor yani sıfırıncı index&#8217;de. Diğer verilerimiz string değerler olduğu için &#8220;<strong>cursor.getString(1)</strong>&#8221; bu şekilde çağırıyorum ve 1. indexde yer alan isim&#8217; listeye atıyorum &#8230;<br />
Verilerimizi listeye attıktan sonra try-catch bloğu dışarısında çalıştırdığımız okunabilir vertabanımızı kapatıyoruz &#8220;db.close();&#8221; ve son olarak listemizi geri gönderiyoruz.<br />
Sıra geldi MainActivity içersin de verilerimizi getireceğimiz kodları yazmaya, bunun için MainActivity son satırında yer alan iki adet kapılmış süslü parantezler yer almakta tam onların ortasında bir methot oluşturalım ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public void Listele(){
    VeriTabani vt = new VeriTabani(MainActivity.this);
    List&lt;String&gt; list = vt.VeriListele();
    ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;&gt;(MainActivity.this, android.R.layout.simple_list_item_1,android.R.id.text1,list);
    VeriListele.setAdapter(adapter);
}</pre>
<p>İlk olarak veri tabanı classmızı çağırıyoruz ikinci olarak liste oluşturuyoruz ve buna veri tabanımızda oluşturduğumuz VeriListe metodunu içersinde geri dönen listeyi buradaki listeye atıyoruz. Diğer kodlar ListView konusu olduğu için diğer 2 satırlık kodu anlatmayacağım uzun uzun biraz incelerseniz anlarsınız diye düşünüyorum. Şimdi metodumuz hazır düşünelim ne zaman bu metodumuz çalışacak ve veriler gösterilecek ilk olarak uygulama açıldığında verilerimiz listelensin bunu için ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">private EditText etAd,etSoyad,etTel;
private Button btnKaydet, btnListele,btnSil,btnDuzenle;
private ListView VeriListele;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    etAd = (EditText) findViewById(R.id.etAd);
    etSoyad = (EditText) findViewById(R.id.etSoyad);
    etTel = (EditText) findViewById(R.id.etTel);
    btnKaydet = (Button) findViewById(R.id.btnKaydet);
    btnListele = (Button) findViewById(R.id.btnListele);
    VeriListele = (ListView) findViewById(R.id.VeriListele);
    btnSil = (Button) findViewById(R.id.btnSil);
    btnDuzenle = (Button) findViewById(R.id.btnDuzenle);
    btnKaydet.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String gelenAd = etAd.getText().toString();
            String gelenSoyad = etSoyad.getText().toString();
            String gelenTel = etTel.getText().toString();
            VeriTabani vt = new VeriTabani(MainActivity.this);
            vt.VeriEkle(gelenAd, gelenSoyad, gelenTel);
        }
    });</pre>
<p>Tanımlamalardan sonra &#8220;<strong>Listele()</strong>&#8221; şeklinde metodumuzu çağırıyoruz ve projemizi emülatörde çalıştırıyoruz ve karşımıza bu ekran geliyor ;<br />
<img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1247" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Listelenmis-Veriler-1-1.png" alt="" width="300" height="538" /><br />
Ayrıca listele Buttonuna basıldığında verilerimiz listview de gözüksün ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">btnListele.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Listele();
    }
});</pre>
<p>Evet buda tamam bakın farkındaysanız tek bir metot oluşturduk ve istediğimiz zaman istediğimiz yerde kullana biliyoruz böylelikle kod israfı yapmıyoruz. Eeee başka ne zaman bu veriler listelensin peki buldum yeni veri eklediğimizde o yeni veri ile listemiz güncellensin ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">btnKaydet.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String gelenAd = etAd.getText().toString();
        String gelenSoyad = etSoyad.getText().toString();
        String gelenTel = etTel.getText().toString();
        VeriTabani vt = new VeriTabani(MainActivity.this);
        vt.VeriEkle(gelenAd, gelenSoyad, gelenTel);
        Listele();
    }
});</pre>
<p>VeriEkle objesinin altına Listele metodumuzu yazıyoruz ve böylelikle yeni bir veri eklendiğinde aşağıda yer alan ListeView güncellenmiş oluyor.</p>
<h3>5-) Veri Silme (DELETE)</h3>
<p>Android SQLite Kullanımı makalemizde sırada geldi DELETE işlemine, daha önce metotları bilmemiş olsanız bile şimdiye kadar bu makale sayesinde az da olsa çalışma mantığını anladığınızı farz ediyorum. Şimdi ilk olarak şunu anlamanız lazım bu iş düşünmeden olmaz kafanızda bir yol haritası çizmeniz gerekiyor o yüzden şimdi düşünelim verilerimizi nasıl sileceğiz. Hmmmm ListView tıklama işlemi olması bir kere şart ondan sonra tıklanan verinin başında yer alan id almamız lazım ki o id bir yerde tutup sonra id ile düzenleme işlemini bile yapabilelim. Bizim verilerimiz ListView de şu şekilde gözüküyor değil mi ? ;<br />
<code class="EnlighterJSRAW" data-enlighter-language="java">1 - Sercan - Çepni - 0555 555 55 55</code><br />
İşte yukarıdaki örnekte başında ki 1 bizim veritabanımızda ki id, plan şu Listview de ki elemanlara tıklandığında onu bir string&#8217;e atalım sonra bu string split yardımı ile parçalıyalım ama neye göre bir koşul belirtmemiz lazım hani biz VeriListele metotunda her bir veri için arasına &#8221; &#8211; &#8221; (Boşluk Tire Boşluk) şeklinde yapmıştık yapmıştık ya listelemeyi bizde ona göre böleceğiz böldükten sonra işimiz kolay item[0] = id <strong>&#8211;</strong> item[1]=ad <strong>&#8211;</strong> item[2]=soyad <strong>&#8211;</strong> item[3]=tel eşit olacak burada önemli olan id yani item[0], bunu int bir değişkene aktaracağız ve sil tuşuna basıldığında o id eşit olan veriyi silecek ancak seçildiğini nasıl anlayacağız onuda söyle yaparız bizim EditText lerimize uygun olan yerlere bu parçaladığımız veriler set edelim yani şu şekilde ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">// Birden fazla yerde kullanmak için bir metot tanımlıyoruz
public void ListViewItem(){
    // LisView tıklama işlemi
    VeriListele.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {
            // Tıklanan verimizi alıyoruz
            String item = VeriListele.getItemAtPosition(position).toString();
            // - Göre bölüyoruz
            String[] itemBol = item.split(" - ");
            // id'mizi alıyoruz
            idBul = Integer.valueOf(itemBol[0].toString());
            // Diğer verilerimizi set ediyoruz.
            etAd.setText(itemBol[1].toString());
            etSoyad.setText(itemBol[2].toString());
            etTel.setText(itemBol[3].toString());
        }
    });
}</pre>
<p><strong>Not: Arkdaşlar yukardaki kodu yapıştırınca hata alacaksınız bu hatanın nedeni idBul önünde int yazmaması int olduğunu sayfanın en üstündeki EditText tanımladığımız yere şunu ekleyin ;</strong><br />
<code class="EnlighterJSRAW" data-enlighter-language="java">int idBul = 0;</code><br />
Veritabanı.java classımıza VeriSil şekilde bir metot tanımlıyoruz ve içerisinde şu kodlar yer alıyor ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public void VeriSil(int id){
    SQLiteDatabase db = this.getWritableDatabase();
    try {
        // id ye göre verimizi siliyoruz
        String where = ROW_ID + " = " + id ;
        db.delete(TABLO_KISILER,where,null);
    }catch (Exception e){
    }
    db.close();
}</pre>
<p>Ardından MainAvtivity.java dosyamızda sil butonu için bir tıklama objesi oluşturuyoruz ve içerisinde gerekli olan kodları yazıyoruz ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">// Silme tuşuna tıklandığında yapılacak olan işlemler...
btnSil.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // VeriTabanı classımızı tanımlıyoruz
        VeriTabani vt = new VeriTabani(MainActivity.this);
        vt.VeriSil(idBul);
        //Sildikten Sonra tekrardan listeliyoruz
        Listele();
    }
});</pre>
<p>Her şeyi doğru yaptıysanız ListView tıkladığınızda kayıtlı bilgilerin EditTextlere geldiğini göreceksiniz ardından SİL butonuna tıkladığınızda verinin silindiğini göreceksiniz.<br />
<img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1268" src="https://www.sercancepni.net.tr/wp-content/uploads/2017/02/Listelenmis-Veriler-1-2-1-1.png" alt="" width="400" height="717" /></p>
<h3>6-) Veri Düzenleme (UPDATE)</h3>
<p>En kolay kısma geldik neden kolay diye sorarsanız zaten bir önceki silme işlemi için biz ListView de bir elemana tıkladığımzıda id&#8217;yi alabiliyoruz bu aldığımız id sayesinde şimdi güncelleme işlemi yapmak çok kolay olacak VeriTabani.java dosyamıza VeriDuzenle şeklinde bir metot tanımlayalım ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">public void VeriDuzenle(int id, String ad, String soyad, String tel){
    SQLiteDatabase db = this.getWritableDatabase();
    try {
        ContentValues cv = new ContentValues();
        cv.put(ROW_AD, ad);
        cv.put(ROW_SOYAD, soyad);
        cv.put(ROW_TEL, tel);
        String where = ROW_ID +" = '"+ id + "'";
        db.update(TABLO_KISILER,cv,where,null);
    }catch (Exception e){
    }
    db.close();
}</pre>
<p>Ardından MainActivity.java dosyamıza Düzenle butonuna tıkladığımızda ne yapacağını yazalım ;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="java">btnDuzenle.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // ListView Tıkladığımızda otomatik dolan EditTextlerimizi Stringlere atıyalım
        String gelenAd = etAd.getText().toString();
        String gelenSoyad = etSoyad.getText().toString();
        String gelenTel = etTel.getText().toString();
        // Veritabanı bağlantımızı açalım ver ardından gerekli bilgileri VeriDuzenle metotuna gönderelim
        VeriTabani vt = new VeriTabani(MainActivity.this);
        vt.VeriDuzenle(idBul,gelenAd,gelenSoyad,gelenTel);
        Listele();
    }
});</pre>
<p>Hadi gözümüz aydın bitti şuana kadar her şeyi anlattığım gibi yaptıysanız projeniz çalışıyordur arkadaşlar ayrıca anlamadığınız yeri veya kafanızdaki soruları yorum şeklinde sorabilirsiniz Kişisel Blog umda Android derslerine devam edeceğim ayrıca isteklerinizi sosyal medya veya yorum şekilde bana bildirebilirsiniz, son olarak aşağıdaki bağlantıdan örnek projeyi indirip tam olarak inceleye bilirsiniz.</p>
<h4 style="text-align: center;"><a href="https://www.sercancepni.net.tr/dosyalar/android/SqliteKullanimi.rar"><strong><span style="color: #ff0000;">Örnek Projeyi İndirmek İçin Tıklayın</span></strong></a></h4>
<p><a href="https://www.sercancepni.net.tr/android-sqlite-kullanimi">Android SQLite Kullanımı</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sercancepni.net.tr/android-sqlite-kullanimi/feed</wfw:commentRss>
			<slash:comments>34</slash:comments>
		
		
			</item>
		<item>
		<title>OneSignal İle Bildirim Gönderme</title>
		<link>https://www.sercancepni.net.tr/onesignal-ile-bildirim-gonderme</link>
					<comments>https://www.sercancepni.net.tr/onesignal-ile-bildirim-gonderme#comments</comments>
		
		<dc:creator><![CDATA[Sercan Çepni]]></dc:creator>
		<pubDate>Wed, 22 Jun 2016 19:25:19 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<guid isPermaLink="false">http://www.sercancepni.net.tr/?p=804</guid>

					<description><![CDATA[<p>Değerli müşterilerim ve ziyaretçilerim için böyle bir konu açma gereği duydum R10.Net &#8216;de satışa sunduğum En İyi WebView uygulaması için sizlere OneSignal ile nasıl bildirim gönderebileceğinizi anlatmaya çalışacağım lafı fazla uzatmadan konuya geçeyim; İlk olarak OneSignal kayıt olun TIKLAYIN Ardından karşınıza daha önce sizin için hazırladığım uygulama bildirim ismi gelecek ve ayrıca kaç kişiye bildirim [&#8230;]</p>
<p><a href="https://www.sercancepni.net.tr/onesignal-ile-bildirim-gonderme">OneSignal İle Bildirim Gönderme</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[<p>Değerli müşterilerim ve ziyaretçilerim için böyle bir konu açma gereği duydum R10.Net &#8216;de satışa sunduğum <strong><span style="color: #ff0000;"><a style="color: #ff0000;" href="http://www.r10.net/android-amp-ios-uygulama-gelistirme/1612700-97339733973397339733-en-iyi-android-webview-paket-ozelliklerimizi-gormeden-karar-vermeyin-97339733973397339733-a.html">En İyi WebView</a></span></strong> uygulaması için sizlere OneSignal ile nasıl bildirim gönderebileceğinizi anlatmaya çalışacağım lafı fazla uzatmadan konuya geçeyim;<br />
İlk olarak OneSignal kayıt olun <span style="color: #ff0000;"><strong><a style="color: #ff0000;" href="https://onesignal.com/">TIKLAYIN</a></strong></span><br />
Ardından karşınıza daha önce sizin için hazırladığım uygulama bildirim ismi gelecek ve ayrıca kaç kişiye bildirim gönderebileceğinizi göreceksiniz.<br />
<a href="https://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-1-ile-bildirim-gonderme-1-1-1.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-805" src="https://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-1-ile-bildirim-gonderme-1-1-1.png" alt="onesignal-ile-bildirim-gonderme-1" width="994" height="152" /></a><br />
İsme tıklayıp devam edin.<br />
<a href="https://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-1-ile-bildirim-gonderme-2-1-1.png"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-810" src="http://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-ile-bildirim-gonderme-2-1024x656.png" alt="onesignal-ile-bildirim-gonderme-2" width="1024" height="656" /></a><br />
&nbsp;<br />
Yan tarafta <strong><span style="color: #00ff00;">New Message</span></strong> tıklayın.<br />
<a href="https://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-1-ile-bildirim-gonderme-3-1-1.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-807" src="https://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-1-ile-bildirim-gonderme-3-1-1.png" alt="onesignal-ile-bildirim-gonderme-3" width="1010" height="582" /></a><br />
Yukarıda Title kısmına bildirim yapacağınız konun başlığını yazın. Content kısmına konuyu yazın ardından alt kısımda Preview tuşuna basın.<br />
<a href="https://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-1-ile-bildirim-gonderme-son-1-1.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-808" src="https://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-1-ile-bildirim-gonderme-son-1-1.png" alt="onesignal-ile-bildirim-gonderme-son" width="978" height="218" /></a><br />
Açılan sayfanın en alt kısmında Send tuşu var ona bastıktan sonra bildirimleriniz kullanıcılarınıza gider.<br />
<span style="color: #000000;"><strong>NOT: Bildirim gidecek kullanıcıda eğer uygulama açık ise bildirim uyarısı gelmez.</strong></span><br />
Ayrıca farklı şekiller dede bildirim gönderebilirsiniz. İsterseniz bildirimleriniz link olarak gidebilir yani sitenizin linkini yazarsınız ve bildirime kullanıcı tıkladığında direk tarayıca siteniz açılır.<br />
<a href="https://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-1-ile-bildirim-gonderme-4-1-1.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-809" src="https://www.sercancepni.net.tr/wp-content/uploads/2016/06/onesignal-1-ile-bildirim-gonderme-4-1-1.png" alt="onesignal-ile-bildirim-gonderme-4" width="999" height="756" /></a><br />
Bildirim başlığı ve mesajı yazılan ekranın altında Options kısmına tıkladığınız yukarıdaki gibi bir ekran gelir. Alt kısımda yer alan Launch URL kısmı ilk olarak no olarak gelir üstüne tıkladığınızda URL gireceğiniz ekran gelir oraya istediğiniz URL yazarak bildirim ekranından yönlendirme yapabilirsiniz.<br />
İster reklam olarak kullanın isterseniz sitenizi uygulamadan açtırmak yerine tarayıcıdan açtırın. Ama şunu unutmayın kullanıcılar fazla bildirim almayı sevmezler. Umarım anlatabilmişimdir aklınıza bir konu takılırsa lütfen Skype sormaya veya yorum olarak sormaya çekinmeyin.</p>
<p><a href="https://www.sercancepni.net.tr/onesignal-ile-bildirim-gonderme">OneSignal İle Bildirim Gönderme</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sercancepni.net.tr/onesignal-ile-bildirim-gonderme/feed</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>org.apache.http.legacy Hata Çözümü</title>
		<link>https://www.sercancepni.net.tr/org-apache-http-legacy-hata-cozumu</link>
					<comments>https://www.sercancepni.net.tr/org-apache-http-legacy-hata-cozumu#respond</comments>
		
		<dc:creator><![CDATA[Sercan Çepni]]></dc:creator>
		<pubDate>Sun, 21 Feb 2016 12:24:44 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[org.apache.http.legacy]]></category>
		<guid isPermaLink="false">http://www.sercancepni.net.tr/?p=661</guid>

					<description><![CDATA[<p>Android 23 sdk sından sonra derleme sırasında bu hata mesajı çıkıyor ; ORG.APACHE.HTTP.LEGACY çözümü çok basit olsa da yeteri kadar türkçe kaynak olmadığından çoğu kişi yapamıyor fazla uzatmadan ORG.APACHE.HTTP.LEGACY hatasının çözümüne geçelim ; Çözüm 1 ; Android sdk manager Açıp 23 sdk yı tekrar yükleyin sorun çözülecektir. Çözüm 2; Tekrar yüklemekle hiç uğraşmadan en kullanışlı yol [&#8230;]</p>
<p><a href="https://www.sercancepni.net.tr/org-apache-http-legacy-hata-cozumu">org.apache.http.legacy Hata Çözümü</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[<p>Android 23 sdk sından sonra derleme sırasında bu hata mesajı çıkıyor ; ORG.APACHE.HTTP.LEGACY çözümü çok basit olsa da yeteri kadar türkçe kaynak olmadığından çoğu kişi yapamıyor fazla uzatmadan ORG.APACHE.HTTP.LEGACY hatasının çözümüne geçelim ;<br />
Çözüm 1 ;<br />
Android sdk manager Açıp 23 sdk yı tekrar yükleyin sorun çözülecektir.<br />
Çözüm 2;<br />
Tekrar yüklemekle hiç uğraşmadan en kullanışlı yol bu bence, aşağıdaki yolu izleyip dosyayı açın.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">C:\Users\&lt;User&gt;\AppData\Local\Android\sdk\platforms\android-23\optional</pre>
<p>optional.json Dosyasını indirip yukardaki konuma atınız ; <strong><span style="color: #ff0000;"><a style="color: #ff0000;" href="http://www.sercancepni.net.tr/wp-content/uploads/2016/02/file.rar" rel="">İndir</a></span></strong><br />
<a href="https://www.sercancepni.net.tr/wp-content/uploads/2016/02/a-1024x330-1-1.jpg" rel="attachment wp-att-663"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-663" src="http://www.sercancepni.net.tr/wp-content/uploads/2016/02/a-1024x330-1024x330.jpg" alt="a-1024x330" width="1024" height="330" /></a><br />
&nbsp;<br />
Sorun Çözülmüştür 😉</p>
<p><a href="https://www.sercancepni.net.tr/org-apache-http-legacy-hata-cozumu">org.apache.http.legacy Hata Çözümü</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sercancepni.net.tr/org-apache-http-legacy-hata-cozumu/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Android Studio 2.0 Çıktı</title>
		<link>https://www.sercancepni.net.tr/android-studio-2-0-cikti</link>
					<comments>https://www.sercancepni.net.tr/android-studio-2-0-cikti#respond</comments>
		
		<dc:creator><![CDATA[Sercan Çepni]]></dc:creator>
		<pubDate>Tue, 24 Nov 2015 19:56:40 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Android Studio 2]]></category>
		<category><![CDATA[Android Studio Yeni Sürüm Özellikleri]]></category>
		<guid isPermaLink="false">http://www.sercancepni.net.tr/?p=533</guid>

					<description><![CDATA[<p>Başlıkta her ne kadar Android Studio 2.0 Çıktı dediysem de aslında stabil sürümü daha çıkmadı fakat fazla uzun süreceğini sanmıyorum. İlk sürümü 2013 tarihinde yayınlanan Android Studio, Google amcanın resmi android yazılımı olmasına karşın geliştiriciler arasında pek tutulmadı. Fakat artık yeni özellikleri ile Geliştiricilerin büyük bir kısmı android studio geçiş yapacağından eminim. Instant Run Özelliği Bir uygulama [&#8230;]</p>
<p><a href="https://www.sercancepni.net.tr/android-studio-2-0-cikti">Android Studio 2.0 Çıktı</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[<p>Başlıkta her ne kadar <span style="color: #ff0000;"><em><strong>Android Studio 2.0</strong></em></span> Çıktı dediysem de aslında stabil sürümü daha çıkmadı fakat fazla uzun süreceğini sanmıyorum. İlk sürümü 2013 tarihinde yayınlanan Android Studio, Google amcanın resmi android yazılımı olmasına karşın geliştiriciler arasında pek tutulmadı. Fakat artık yeni özellikleri ile Geliştiricilerin büyük bir kısmı android studio geçiş yapacağından eminim.</p>
<h3>Instant Run Özelliği</h3>
<p>Bir uygulama yaparken en büyük sorun küçük bir değişiklik yaptıkdan sonra bile illa emulator atıp ordada tekrardan yükleyip bakmak gerekiyordu. Artık Android Studio 2.0 ile bu dert ortadan kalktı değişik yaptıktan sonra anında emulator de görmek mümkün.<br />
Instant Run özelliğinin nasıl çalıştığını görmek için aşağıdaki videoyu izleyebilirsiniz ;</p>
<div class="youtube-embed" data-video_id="AefJXhCxrK8"><iframe loading="lazy" title="Android Studio 2.0 Preview: Instant Run" width="696" height="392" src="https://www.youtube.com/embed/AefJXhCxrK8?feature=oembed&#038;enablejsapi=1" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
<p>Ayrıca yeni sürümde dikkati çeken bir diğer özellik de çoğu cihazda olan özelliklere ( GPS, sms erişimi, çağrı yönetimi vb. ) daha az kod yazarak kullanabileceğiz. Hepsi buda değil proje derlerken diğer sürümlerine oranla 2 katı daha hızlı bir derleme yapıyor.<br />
<em><strong>Android Studio</strong></em> nun yeni sürümü ayrıca, <strong>arayüzünde</strong> de yenilikler yapıyor. Yeni yüzer araç çubuğu, bu yeniliklerden yalnızca bir tanesi. Bunun yanında ayrıca APK dosyalarını sürükle-bırak yoluyla emulator&#8217;e ekleyebiliyor.<br />
Beta aşamasındaki &#8220;<strong>GPU Profiler</strong>&#8221; ise OpenGL oturumlarını kaydedip, oluşan değişiklikleri çerçeve çerçeve görmenize olanak tanıyor. Her çerçevenin kodunu görebiliyor ve GL State, Commands hakkında bilgiler alabiliyorsunuz.</p>
<h3>Ve Daha Fazlası&#8230;</h3>
<p>Anroid Studio ekibi şuan da birçok fantastik özelliğinde geleceğini müjdeliyor. Doğal olarak daha nasıl özellikler geleceğini insan merak ediyor.<br />
Android Studio 2 denemek için <a href="http://tools.android.com/download/studio/canary">buradan</a> indirebilirsiniz. Eski sürümü kaldırmanıza gerek yok eski sürüm ile paralel olarak çalışmaktadır.<br />
<a href="https://www.sercancepni.net.tr/wp-content/uploads/2015/11/nexus2cee_compiling-1-1.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-537" src="https://www.sercancepni.net.tr/wp-content/uploads/2015/11/nexus2cee_compiling-1-1.png" alt="nexus2cee_compiling" width="413" height="360" /></a></p>
<p><a href="https://www.sercancepni.net.tr/android-studio-2-0-cikti">Android Studio 2.0 Çıktı</a> yazısı ilk önce <a href="https://www.sercancepni.net.tr">Sercan Çepni</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sercancepni.net.tr/android-studio-2-0-cikti/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
