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

2 yorum:

  1. Android Serisine devam etmeyi düşünüyor musunuz?
    Başlangıç olarak baya bir yardımı dokundu.

    YanıtlaSil
  2. Merhaba, evet etmeyi düşünüyorum. Daha sağlam konulara gireceğiz hatta, bir web uygulamasında yaptıklarınızın neredeyse hepsini tek tek yapacağız. Şu an pek bir zaman kısıtı söz konusu olsa da elimden geldiğince yavaş yavaş paylaşımlara devam edeceğim. Yorumunuz ve takibiniz için çok teşekkürler.

    YanıtlaSil