3 Şubat 2016 Çarşamba

Android Geliştirme Özet Anlatım-2

Merhaba arkadaşlar bugün Buton,TextView oluşturup yazıyı nasıl görünmez yapabiliriz ve Button a tıklandığında aksiyon oluşturmayı göreceğiz.

Öncelikle main.xml , activity_main.xml  oluşturduğunuz projeye göre değişir ama ilk olarak gui arayüzü oluşturarak almaktansa xml dosyasına kodunu yazarak oluşturmak bana daha akılda kalıcı geliyor o yüzden oluştururken xml dosyasında kodlarını yazarak oluşturacağım.

İlk olarak TextView oluşturalım.

<TextView android:text="@string/string1"   android:id="@+id/string1TextView" android:layout_width="match_parent" android:layout_height="wrap_content"    />
İsterseniz alttaki satırı eklersiniz böylelikle invisible bir textviewniz olmuş olur ve herhangi bir aksiyon ile onu visible yapabilirsiniz.İlerde göstereceğim.
android:visibility="visible" 
Alltaki satır ise textview veya herhangi bir compenent e id verip daha sonra çağırmamızda sadece bu id yi kullanmamazı sağlar bir nevi relation id .
android:id="@+id/string1TextView"

android:text kısmına direk " " arasına text yazabilirsiniz ama daha sonra sürekli yeniden yazmak istemiyorsanız strings.xml kısmına tanımlayıp main.xmlde o tanımlı şekli ile kullanabilirsiniz.Örneğin string1 adında bir key oluşturdum ben orada içersinde "Merhaba ben prefix string" yazan string1 çağırdığım her yerde o yazı gözükecektir.Bunun için strings.xml dosyasına resources arasına şu alttaki satırı eklemeniz yeterlidir.
<string name="string1">merhaba ben prefix string</string>
Şimdide Button oluşturalım bunun içinde main.xml dosyamıza alttaki satırları giriyoruz.

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button1" android:text="@string/text_button1"/>

burada yine TextView 'de olduğu gibi string xml dosyasına text_button1 adında key oluşturdum onuda şu alttaki satırla yapıp burada sadece text_button1 yazarak çağırıyorum.
<string name="text_button1">Buraya Bas</string> 

Şimdi ise butonumuza basıldığı zaman çağıralacak bir method ekleyeceğiz.

android:onClick="onButtonClicked"
Yukarıdaki satırı <Button ... içerisine eklediğimiz takdirde button a basıldığı zaman onButtonClicked methodu çağıralacaktır.
Peki ama neyin nesi bu onButtonClicked ? Biz bunu biyerde napacağını söylememiz lazım ismi var implementasyonu yok .Bunun için hemen src klasörünün altında bulunan MainActivity.Java size göre değişr ama buradaki .java uzantılı dosyamıza geliyoruz.

public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
} 
Yukarıdaki satırların bulunduğu .java uzantılı dosyamızı bulduktan sonra Methodumuzu burada tanımlayıp ne yapacağını söyleceğiniz.( Unutmayın method burada tanımlanmaz ise butona basıldığında öyle bir method bulunmadığından dolayı program kapanacaktır.)

public void onButtonClicked(View view)
{
} 
 Satırını MainActivity classı içinde eklediğimizde şimdi ise onButtonClicked methodumuzu tanımlamış olduk şimdi butona basıldığında program hata vermez kapanmaz fakat boş bi fonksiyon gibi düşünün o haliyle kalacaktır hiç bir işlem yapmadan sadece içi boş olan methodu çağıracaktır.

Şimdi ise bu methodu impleme etmeye bir gözatalım.
"Bu methodumuz invisible yaptığımız textView mizi visible hale getirsin"
Peki bunu nasıl yapacağız ? Bir sonraki blog yazımda bunu anlatacağım.İyi Çalışmalar.

Android Geliştirme Özet Anlatım-2

Merhaba arkadaşlar bugün Buton,TextView oluşturup yazıyı nasıl görünmez yapabiliriz ve Button a tıklandığında aksiyon oluşturmayı göreceğiz.

Öncelikle main.xml , activity_main.xml  oluşturduğunuz projeye göre değişir ama ilk olarak gui arayüzü oluşturarak almaktansa xml dosyasına kodunu yazarak oluşturmak bana daha akılda kalıcı geliyor o yüzden oluştururken xml dosyasında kodlarını yazarak oluşturacağım.

İlk olarak TextView oluşturalım.

<TextView android:text="@string/string1"   android:id="@+id/string1TextView" android:layout_width="match_parent" android:layout_height="wrap_content"    />
İsterseniz alttaki satırı eklersiniz böylelikle invisible bir textviewniz olmuş olur ve herhangi bir aksiyon ile onu visible yapabilirsiniz.İlerde göstereceğim.
android:visibility="visible" 
Alltaki satır ise textview veya herhangi bir compenent e id verip daha sonra çağırmamızda sadece bu id yi kullanmamazı sağlar bir nevi relation id .
android:id="@+id/string1TextView"

android:text kısmına direk " " arasına text yazabilirsiniz ama daha sonra sürekli yeniden yazmak istemiyorsanız strings.xml kısmına tanımlayıp main.xmlde o tanımlı şekli ile kullanabilirsiniz.Örneğin string1 adında bir key oluşturdum ben orada içersinde "Merhaba ben prefix string" yazan string1 çağırdığım her yerde o yazı gözükecektir.Bunun için strings.xml dosyasına resources arasına şu alttaki satırı eklemeniz yeterlidir.
<string name="string1">merhaba ben prefix string</string>
Şimdide Button oluşturalım bunun içinde main.xml dosyamıza alttaki satırları giriyoruz.

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button1" android:text="@string/text_button1"/>

burada yine TextView 'de olduğu gibi string xml dosyasına text_button1 adında key oluşturdum onuda şu alttaki satırla yapıp burada sadece text_button1 yazarak çağırıyorum.
<string name="text_button1">Buraya Bas</string> 

Şimdi ise butonumuza basıldığı zaman çağıralacak bir method ekleyeceğiz.

android:onClick="onButtonClicked"
Yukarıdaki satırı <Button ... içerisine eklediğimiz takdirde button a basıldığı zaman onButtonClicked methodu çağıralacaktır.
Peki ama neyin nesi bu onButtonClicked ? Biz bunu biyerde napacağını söylememiz lazım ismi var implementasyonu yok .Bunun için hemen src klasörünün altında bulunan MainActivity.Java size göre değişr ama buradaki .java uzantılı dosyamıza geliyoruz.

public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
} 
Yukarıdaki satırların bulunduğu .java uzantılı dosyamızı bulduktan sonra Methodumuzu burada tanımlayıp ne yapacağını söyleceğiniz.( Unutmayın method burada tanımlanmaz ise butona basıldığında öyle bir method bulunmadığından dolayı program kapanacaktır.)

public void onButtonClicked(View view)
{
} 
 Satırını MainActivity classı içinde eklediğimizde şimdi ise onButtonClicked methodumuzu tanımlamış olduk şimdi butona basıldığında program hata vermez kapanmaz fakat boş bi fonksiyon gibi düşünün o haliyle kalacaktır hiç bir işlem yapmadan sadece içi boş olan methodu çağıracaktır.

Şimdi ise bu methodu impleme etmeye bir gözatalım.
"Bu methodumuz invisible yaptığımız textView mizi visible hale getirsin"
Peki bunu nasıl yapacağız ? Bir sonraki blog yazımda bunu anlatacağım.İyi Çalışmalar.

30 Ocak 2016 Cumartesi

Android Geliştirme Özet Anlatım

Merhaba arkadaşlar bildiğim ve öğrendiğim kadarı ile hergün özet bir anlatım gerçekleştirmeye karar verdim.Anlatımlar özet olacaktır bilgi hatırlamaya yönelik veya temel oluşturma nitelikle de düşünülebilir.

Bugün ilk olarak ıvır zıvır kısımları geçerek ( ide kurma ,jdk indirme gibi) programlama kısmından başlayacağım.
Android Studio ile oluşturduğumuz blank activity projemizde bulunan  activity_main.xml içerisinde 2 adet text ve 1 adet buton bulunacak şekilde oluşturdum.İster gui kısmından butonu eklersiniz istersenizde xml kısmından kodunu yazarsanız ads otomatik renderleyip gui kısmında size sunacaktır.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
tools:context="com.example.ozan3.myapplication.MainActivity">
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/textView" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" android:layout_below="@+id/textView"
android:id="@+id/textView2" />
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" android:id="@+id/button" />
</RelativeLayout>
Burada iki türlü text girişi yapılabilir ister dont prefix olarak android:text="...." kısmında yazabilirsiniz istersenizde strings.xml dosyasında ( <strings name="hello"> .....</string> şeklinde ) bir string kaydı oluşturarak istediğiniz main xml de @string/hello şeklinde çağırabilirsiniz. Hız ve zaman olarak size katkı sağlayacaktır.Tabi bunu aynı şekilde button kısmındada kullanabilirsiniz.

Android Geliştirme Özet Anlatım

Merhaba arkadaşlar bildiğim ve öğrendiğim kadarı ile hergün özet bir anlatım gerçekleştirmeye karar verdim.Anlatımlar özet olacaktır bilgi hatırlamaya yönelik veya temel oluşturma nitelikle de düşünülebilir.

Bugün ilk olarak ıvır zıvır kısımları geçerek ( ide kurma ,jdk indirme gibi) programlama kısmından başlayacağım.
Android Studio ile oluşturduğumuz blank activity projemizde bulunan  activity_main.xml içerisinde 2 adet text ve 1 adet buton bulunacak şekilde oluşturdum.İster gui kısmından butonu eklersiniz istersenizde xml kısmından kodunu yazarsanız ads otomatik renderleyip gui kısmında size sunacaktır.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
tools:context="com.example.ozan3.myapplication.MainActivity">
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/textView" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" android:layout_below="@+id/textView"
android:id="@+id/textView2" />
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" android:id="@+id/button" />
</RelativeLayout>
Burada iki türlü text girişi yapılabilir ister dont prefix olarak android:text="...." kısmında yazabilirsiniz istersenizde strings.xml dosyasında ( <strings name="hello"> .....</string> şeklinde ) bir string kaydı oluşturarak istediğiniz main xml de @string/hello şeklinde çağırabilirsiniz. Hız ve zaman olarak size katkı sağlayacaktır.Tabi bunu aynı şekilde button kısmındada kullanabilirsiniz.

18 Aralık 2015 Cuma

Polimorfizm Kavramı hakkında (Nesneye Dayalı Programlama)

Poly birden fazla manasına gelmektedir. Morph ise şekil veya görüntü anlamına gelmektedir. İkisini bir araya getirirsek birden fazla görüntüsü olan olarak ifade edebiliriz. Anlamını öğrendikten sonra programlamada nasıl kullanıldığını ve ne anlama geldiğine bakalım. Yine bunu da bir örnek ile açıklayalım. Mesela hayvan(Animal) adlı bir sınıf oluşturalım ve bunun çocukları olan Kedi (Cat) ve Köpek(Dog) adında iki tane sınıf tanımlayalım. Şimdi bu iki sınıfta da birer talk() metodu olsa ve kedi ve köpeğin çıkardığı sesleri döndürürse polymorphism’i sağlamış oluruz. Bu şu demek hayvan sınıfında olan talk() metodunu her iki sınıfta method overriding yapıyor. Bu şekilde kedi ve köpek sınıfı birbirinden farklı özelliklerde talk() metoduna sahip oluyor. Bu sadece metodlarda değil aynı zamanda Constructorlarda da geçerlidir. Aşağıda konuyla ilgili kod örnekleri vardır.
(Alıntıdır)
abstract public class Animal{
//Her iki hayvan objesinde olan talk metodu.
//Abstract sınıflarda metodu tanımlamak zorunda değiliz
//ancak eğer metodu aşağıdaki şekilde yazarsak
//java derleyicileri bu sınıfın çocuklarında metod yazılmassa
//hata verecektir.
public abstract String talk();
}
public class Cat extends Animal{
//Kedi sınıfı kediye has olan miyavlama
//sesini döndürüyor bu şekilde farklı
//bir görünüme sahip oluyor.
public String talk(){
return "Miyav";
}
}
public class Dog extends Animal{
//Kedi sınıfı köpeğe has olan havlama
//sesini döndürüyor bu şekilde farklı
//bir görünüme sahip oluyor.
public String talk(){
return "Hav hav";
}
}

Polimorfizm Kavramı hakkında (Nesneye Dayalı Programlama)

Poly birden fazla manasına gelmektedir. Morph ise şekil veya görüntü anlamına gelmektedir. İkisini bir araya getirirsek birden fazla görüntüsü olan olarak ifade edebiliriz. Anlamını öğrendikten sonra programlamada nasıl kullanıldığını ve ne anlama geldiğine bakalım. Yine bunu da bir örnek ile açıklayalım. Mesela hayvan(Animal) adlı bir sınıf oluşturalım ve bunun çocukları olan Kedi (Cat) ve Köpek(Dog) adında iki tane sınıf tanımlayalım. Şimdi bu iki sınıfta da birer talk() metodu olsa ve kedi ve köpeğin çıkardığı sesleri döndürürse polymorphism’i sağlamış oluruz. Bu şu demek hayvan sınıfında olan talk() metodunu her iki sınıfta method overriding yapıyor. Bu şekilde kedi ve köpek sınıfı birbirinden farklı özelliklerde talk() metoduna sahip oluyor. Bu sadece metodlarda değil aynı zamanda Constructorlarda da geçerlidir. Aşağıda konuyla ilgili kod örnekleri vardır.
(Alıntıdır)
abstract public class Animal{
 //Her iki hayvan objesinde olan talk metodu.
 //Abstract sınıflarda metodu tanımlamak zorunda değiliz
 //ancak eğer metodu aşağıdaki şekilde yazarsak
 //java derleyicileri bu sınıfın çocuklarında metod yazılmassa
 //hata verecektir.
 public abstract String talk();
}
public class Cat extends Animal{
 //Kedi sınıfı kediye has olan miyavlama
 //sesini döndürüyor bu şekilde farklı
 //bir görünüme sahip oluyor.
 public String talk(){
  return "Miyav";
 }
}
public class Dog extends Animal{
 //Kedi sınıfı köpeğe has olan havlama
 //sesini döndürüyor bu şekilde farklı
 //bir görünüme sahip oluyor.
 public String talk(){
  return "Hav hav";
 }
}

Dijkstra Algoritmasi C örneği ( Iki dugum arasi mesafe hesabi)

Bu algoritmanın Türkçe anlamı ve amacı en kısa yolun bulunmasıdır.Bu ister bir ağ üzerinde veya iki şehir arasındaki mesafede olsun minimum mesafeyi bulmaya yarayan bir algoritmadır.Bu algoritmada
kullanılan mantık etiketleme mantığıdır.Yani bir başlangıç noktasından başlayıp sonra ayrılan yolların
ucundaki diğer bir eleman bir düğüm sayılır ve bu düğümlere kalıcı veya geçici gibi etiketler atanır.
Geçici olması demek daha kısa bir yol bulunduğunda iptal edilebilir olması kalıcı ise en kısa yolun olmasıdır.


#include<stdio.h>
#define MAX 10 //Maksimum düðüm sayýsý programda farklý yerlerdede kullanýlacak.
#define sonsuz 9999 // baþlangýçta düðümlere sonsuz distance deðeri verilir dijkstra algorithm.
struct dugum
{
int onceki;
int dist; /* o düðümün kaynaða olan minimum mesafesi */
int durum;
};
int adj[ MAX ][ MAX ];
int n;
void create_graph() //Graphý tanýmlayan adjacent matrixi
{
n = 5;
adj[1][2] = 4;
adj[2][1] = 4;
adj[2][3] = 3;
adj[3][2] = 3;
adj[3][4] = 4;
adj[4][3] = 4;
adj[1][4] = 8;
adj[4][1] = 8;
adj[4][5] = 7;
adj[5][4] = 7;
} /*SON*/
void display() {  //Adjancent matrixi ekrana yazdýrma
int i, j;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n; j++)
printf("%3d", adj[i][j]);
printf("n");
}
} /*SON*/
int findpath(int s, int d, int path[ MAX ], int* sdist) {
struct dugum state[ MAX ];
int i, min, count = 0, current, newdist, u, v;
*sdist = 0;
/*Tüm düðümleri geçici temp e al */
for (i = 1; i <= n; i++)
{
state[i].onceki = 0;
state[i].dist = sonsuz;
state[i].durum = 0;
}
/*Source dugum kalýcý olmalý*/
state[s].onceki = 0;
state[s].dist = 0;
state[s].durum = 1;
/*Hedef bulunana kadar kaynak düðümden baþla*/
current = s;
while (current != d)
{
for (i = 1; i <= n; i++)
{
/*geçici komþu düðümleri kontrol et */
if (adj[current][i] > 0 && state[i].durum == 0)
{
newdist = state[current].dist + adj[current][i];
/*Kontrol*/
if (newdist < state[i].dist)
{
state[i].onceki = current;
state[i].dist = newdist;
}
}
} /*SON*/
/*Geçici düðümlerde minimum mesafesi olaný ara ve current düðüm yap*/
min = sonsuz;
current = 0;
for (i = 1; i <= n; i++)
{
if (state[i].durum == 0 && state[i].dist < min)
{
min = state[i].dist;
current = i;
}
} /*son*/
if (current == 0)
return 0;
state[current].durum = 1;
} /*son*/
/* hedef ile kaynak arasý yolu arraya ata */
while (current != 0)
{
count++;
path[count] = current;
current = state[current].onceki;
}
/*kaynak ile hedef arasýndaki mesafe hesapla*/
for (i = count; i > 1; i--)
{
u = path[i];
v = path[i - 1];
*sdist += adj[u][v];
}
return (count);
} /*SON*/
void main() {
int i;
int first, second;
int path[ MAX ];
int shortdist, count;
create_graph();
printf("Adjacency matrix  :n");
display();
while (1)
{
printf("1.Dugumu giriniz(Cikmak icin 0 a basin) : ");
scanf("%d", &first);
printf("2.Dugumu giriniz(Cikmak icin 0 a basin) : ");
scanf("%d", &second);
if (first == 0 || second == 0)
break;
count = findpath(first, second, path, &shortdist);
if (shortdist != 0)
{
printf("En kisa mesafe (maliyet) : %dn", shortdist);
printf("En kisa yol : ");
for (i = count; i > 1; i--)
printf("%d->", path[i]);
printf("%d", path[i]);
printf("n");
}
else
printf("Bu iki dugum arasinda yol bulunmamaktadir.n");
}  /*SON*/
} /*Main SON*/