Android Programlama Ders 19: İkinci etkileşimi (Activity) Oluşturuyoruz

In Mobil, Pratik by Victor CuiumjuLeave a Comment

Android programlama öğrenmeye devam ediyoruz. Bu derste ikinci etkileşimi (Activity)  oluşturmayı öğreneceğiz.

Geçen derslerimizde uygulamalarda tek etkileşimi kullanıyorduk. Normalde Android uygulamalarda birden fazla etkileşim kullanılıyor.

Yeni bir proje oluşturalım:

  • Project name: P0019_TwoActivity
  • Build Target: Android 4.2
  • Application name: TwoActivity
  • Package name: tr.androidApp.TwoActivity
  • Create Activity: MainActivity

Main.xml dosyasını açalım ve aşağıdaki gibi ekranı oluşturalım:

 

<?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”>
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Go to Activity Two”
android:id=”@+id/btnActTwo”>
</Button>
</LinearLayout>

 

Ekranda bir tane buton olacaktır. Butona bastığı zaman ikinci etkileşimi etkileneceğiz.

MainActivity.java’yı açalım ve aşağıdaki kodla dolduralım.

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

public class MainActivity extends Activity implements OnClickListener {

Button btnActTwo;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

btnActTwo = (Button) findViewById(R.id.btnActTwo);
btnActTwo.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnActTwo:
// TODO Call second activity
break;
default:
break;
}
}
}


Yukarıdaki kodda btnActTwo belirledik ve işletici olarak etkileşimi (Activity) belirledik. OnClick metodu şuanda tam oluşturmadık bunu biraz sonra yapacağız. Sonra hangi butona bastığınızı buluyoruz. Ve ikinci ekranı (Etkileşimi) çağıracağız. Ama çağırmadan önce ikinci ekranı oluşturmamız gerekiyor. Projeyi oluşturduğu zaman varsayılan etkileşimi (Activity) oluşturuyoruz.

CreateActivity

Bu etkileşim için isim veriyoruz. Genelde MainActivity ismi veriyoruz. Sonra MainActivity.java klası oluşuyor. Klasın amacı etkileşimin davranışı kontrol etmek. Bunun dışında etkileşim AndroidManifest.xml dosyasında kayıtlı oluyor. ManifetsInProject

AndroidManifest.xml’i açalım.

ManifestActivities

Aşağıda Application sekmeyi açıyoruz. Sol tarafında MainActivity’yi görüyoruz. Onu açtığı zaman IntentFilter ve iki tane parametreyi görüyoruz. android.intent.action.Main’nın amacı  uygulamayı çalıştırdığında ilk açılacak etkileşimi belirlemek. İkinci parametrenin amacı (android.intent.category.LAUNCHER) uygulamayı Android uygulama listesinde yerleştirmek. Sağda Name alanında. MainActivity ismi klası görüyoruz. Klasın amacı etkileşimin çalışması kontrol etmek. Yeni etkileşimi oluşturmak için yeni kası oluşturmamız gerekecektir. Klası oluşturmak için src dosyasında tr.androidApp.TwoActivity seçeneğe farede sağa düğmeye bastıktan sonra New -> Class seçeneği seçiyoruz.

New Class

Çıkan pencerede Name alanında ActivityTwo ve Superclass alanında android.app.Activity’yi giriyoruz.

New Java Class

ActivityTwo klası oluşturduk. Ama bu klasın içeriği boştur. Klasta etkileşimi (Activity) oluşturmak için onCreate metodu kullanmamız gerekiyor.

package tr.androidApp.TwoActivity;

 

import android.app.Activity;

import android.os.Bundle;

 

public class ActivityTwo extends Activity {

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

}

Ekranı oluşturmak için klasta setContentView metod eksiktir. Bu metod giriş olarak layout dosyayı kullanıyor. Yeni bir layout dosyayı oluşturalım (res->layout->new->fıle). Dosyanın ismi two.xml olsun. Bu dosyayı aşağıdaki kodla dolduralım:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
<TextView
 android:id="@+id/textView1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="This is Activity Two">
</TextView>
</LinearLayout>

Ekranımızda bir tane TextView “This is Activity Two” mesajla oluşturduk. Bu dosyayı (two.xml) setContentView metodu uygulayarak ActivityTwo klasta kullanacağız.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.two);
  }

(Sadece işaretlenmiş kodu ekliyoruz). Kaydedelim. ActivityTwo klası hazırdır. Klası çalıştırdığımız zaman layout (two.xml) dosyada oluşturduğumuz ekranı çağıracak. Şimdi etkileşimi Manifest dosyasında kayıt yapmamız gerekiyor. AndroidManifest.xml dosyayı açtıktan sonra Application sekmeyi açıyoruz ve Add butona basıyoruz.

AddActivityManifest1

Açılan pencerede Activity seçeneği seçiyoruz.

AddActivityManifest2

OK butonuna bastıktan sonra. Sağ tarafında Name alanında “Activity Two” ismini giriyoruz. Kaydediyoruz. Manifest dosyasında artık iki tane etkileşimi kayıtlıdır.

ManifestInProject1

MainActivity.java dosyasında boş kalan onClick metodu oluşturalım. OnClick metodu ikinci etkileşimi (ActivityTwo) çağıracaktır. MainActivity.java’yı açalım ve aşağıdaki işaretlenmiş satırları ekleyelim.

 

case R.id.btnActTwo:
      Intent intent = new Intent(this, ActivityTwo.class);
      startActivity(intent);
      break;

Import bölümünü yeniliyoruz (CTRL+SHIFT+O), kaydediyoruz ve emulatörde çalıştırıyoruz. Uygulama açıldığında MainActivity görünüyor.

Activity1

 

Butona bastıktan sonra ikinci etkileşime (ActivityTwo) geçiyoruz.

 

Activity2

 

Yeni etkileşimi (Activity) daha iyi anlamak için birkaç tane yeni etkileşimi oluşturabilirsiniz. Gelecek dersimizde Intent ve IntentFilter ne işe yarıyor öğreneceğiz. (Önemli bir konu)