android türkçe etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
android türkçe etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

15 Haziran 2011 Çarşamba

Android Serisi 6. Bölüm - Intentler

Merhaba,

Şu ana kadar yaptığımız örneklerin hiçbirinde sayfalar arası geçiş yapmadık. Android'de bunu yapmamıza imkan veren nesne Intent nesnesidir. Bu ilk örneğimizde intentlere basitçe bir giriş yapacağız, konu ilerledikçe muhteviyatta artmış olacak.

Senaryomuzda 2 adet düğme var, birinci düğmeye tıklandığında Türkiye 1. Ligi, diğer düğmeye tıklandığındaysa İngiltere Premier Lig'e ait sayfaya gidilecek.

Her zaman olduğu gibi yeni bir proje yaratarak işe başlıyoruz. Main.xml dosyasına sadece bu iki düğmeyi ekliyoruz.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Türkiye Ligi Fikstürü"
android:id="@+id/btnTurkiyeLigi"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="İngiltere Premier Ligi Fikstürü"
android:id="@+id/btnPremierLig"
/>
</LinearLayout>
Daha sonra 2 tane activity oluşturuyorum, birinin adı TurkiyeLigi diğerinin adı ise Premier Lig (aşağıdaki gibi)

TurkiyeLigi Activity
package app.intentornek;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class TurkiyeLigi extends Activity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TextView txtYazi = new TextView(this);
txtYazi.setText("türkiye spor toto 1. ligi sayfası");
setContentView(txtYazi);
}
}

PremierLig Activity
package app.intentornek;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class PremierLig extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TextView txtYazi = new TextView(this);
txtYazi.setText("ingiltere premier ligi sayfası");
setContentView(txtYazi);
}
}
Oluşturulan bu Activityleri AndroidManifest dosyama ekliyorum.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.intentornek"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".IntentsOrnekActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TurkiyeLigi"></activity>
<activity android:name=".PremierLig"></activity>
</application>
</manifest>

Son olarak projemin main activity'si olan IntentsOrnekActivity'i aşağıdaki gibi kodluyorum.

package app.intentornek;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class IntentsOrnekActivity extends Activity
implements OnClickListener{
/** OnClickListener nesnesi sürekli kullanılacağı için implemente edildi. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(app.intentornek.R.layout.main);

//butonlar bulunuyor
Button btnTurkiyeLigi = (Button)findViewById(app.intentornek.R.id.btnTurkiyeLigi);
Button btnPremierLig = (Button)findViewById(app.intentornek.R.id.btnPremierLig);

//click eventleri set ediliyor
btnTurkiyeLigi.setOnClickListener(this);
btnPremierLig.setOnClickListener(this);

}

@Override
public void onClick(View v) {

//Bir butonun click eventi fire edildiğinde buraya giriliyor,
//hangi butondan geldiği switch edilip buna göre önceden yaratılan intent set ediliyor.
Intent intent = new Intent();
switch (v.getId()) {
case app.intentornek.R.id.btnTurkiyeLigi:
intent.setClass(getApplicationContext(), app.intentornek.TurkiyeLigi.class);
startActivity(intent);
break;
case app.intentornek.R.id.btnPremierLig:
intent.setClass(getApplicationContext(), app.intentornek.PremierLig.class);
startActivity(intent);
break;
default:
Toast.makeText(getApplicationContext(), "lig bulunamadı", Toast.LENGTH_SHORT).show();
break;
}

}
}

Projemi çalıştırdığımda elde edeceğim görüntü aşağıdaki gibi olmalı.

Intentlere giriş amaçlı basit bir uygulama yaptık, bir sonraki konumuzda explicit ve implicit başlıkları altında konumuzu derinleştireceğiz.

Dosya İsmi: IntentsOrnek.rar Dosya Boyutu:41.59 KB

30 Mayıs 2011 Pazartesi

Android Serisi 4. Bölüm - AlertDialog.Builder Sınıfı ve Dialog Kutuları

Merhaba arkadaşlar, tekrar birlikteyiz.

Konumuz gayet basit olmakla birlikte yazılım uygulamalarının da olmazsa olmazlarından biri. Biz yine lafı uzatmadan örnekle hemen işe koyulalım.

Senaryo şu; bir düğme var, kullanıcı düğmeye bastığında karşısına bir dialog box çıkacak. Sorulan soruya evet derse title değiştirilip rengi sarıya dönüştürülecek. Hayır derse bir mesajla bu seçimi kullanıcıya belirtilecek.

BuilderOrnek adinda bir proje yaratıyorum. Activity'imin adı ise Main.

Layout > main.xml dosyasını aşağıdaki gibi editliyorum.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/lblTitle"
/>

<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="BuilderDeneme"
android:text="Tıklandığında Alert oluşacak"
android:id="@+id/btnBuilder"
/>
</LinearLayout>

Son olarak Main.java activity'imi açıp aşağıdaki gibi düzenliyorum.

package com.builderornek;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class Main extends Activity {
private final Context context = this; //context'imizi globalleştiriyoruz.

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

//btnBuilder'a tıklandığında aşağıdaki method çalışacak.
public void BuilderDeneme(final View v){
//Dialog nesnesi oluşturuluyor.
AlertDialog.Builder builder = new AlertDialog.Builder(context);
//Kullanıcıya gösterilecek mesaj oluşturuluyor.
builder.setMessage("Devam ederek başlık yazısını değiştirmek istediğinizden emin misiniz?");
//Cancel buttonu iptal ediliyor (örnek olması amacıyla koydum)
builder.setCancelable(false);
//Kullanıcı tamam diyerek devam etmek istediğinde (true response'unda yapılacaklar.)
builder.setPositiveButton("Evet", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
TextView lblTitle = (TextView)findViewById(R.id.lblTitle);
lblTitle.setTextColor(Color.YELLOW);
lblTitle.setText("baslik değiştirildi ve rengi sarı oldu.");
}
});

//kullanıcı iptal diyerek devam etmek istediğinde. (false)
builder.setNegativeButton("Hayır", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "Bir değişiklik yapılmadı", Toast.LENGTH_SHORT).show();
}
});

//builder dialogumuzu kullanıcıya gösteriyoruz.
builder.show();
}

}

ve işte sonuç;



Dosya İsmi: BuilderOrnek.rar
Dosya Boyutu:41.49 KB