28 Eylül 2015 Pazartesi

#ANDROID - ListActivity Kullanımı

  Hiç yorum yok
Önceki makalelerimize baktığınızda sınıfımızı hep Activity'den extends ettik. Fakat burada işler biraz değişecek. Sınıfımızı extends ederken bu kez ListActivity kullanacağız. Böylelikle yaptığımız her çalışmayı menü şeklinde listeleyip hangisini istiyorsak ona tıklayıp ilgili class'a gideceğiz.

Öncelikle bir Menu.java dosyası oluşturuyoruz. Bu kez herhangi bir layout dosyası kullanmayacağız zaten ListActivity kullandığımız için veriler liste şeklini alacak.

Menu.java dosyası:

package com.hakancengiz.blogders;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Menu extends ListActivity {

String siniflarim[]={"MainActivity", "ornek1", "ornek2", "ornek3"};

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

ArrayAdapter adaptorum=new ArrayAdapter(this, android.R.layout.simple_list_item_1, siniflarim);
setListAdapter(adaptorum);

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);

String secilen=siniflarim[position];

try {
Class secilenClass;
secilenClass = Class.forName("com.hakancengiz.blogders." + secilen);
Intent intent = new Intent(this, secilenClass);
startActivity(intent);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

Sınıflarım diye bir dizi oluşturuyoruz ve bu dizinin elemanları olarak projemizdeki class adlarını yazıyoruz. Şimdilik oradaki tek gerçekçi değer MainActivity. Örnek 1,2,3 yerine daha sonra oluşturacağımız class adlarımızı yazacağız. Class adlarını birebir aynı yazmalıyız aksi takdirde istenilen Activity'e gitmek mümkün olmayacaktır.

Bir ArrayAdapter oluşturup bu dizimizi adaptörün içine atıyoruz. Daha sonra adaptörü listeye okutuyoruz.

onListItemClick metodunda ise seçilen liste elemanına göre o Activity'i açma işlemini yapıyoruz. Position değeriyle tıklanılan liste elemanını beliledikten sonra, o liste elemanının adı aynı zamanda bir class adı olduğundan Intent komutu ile  com.hakancengiz.blogders." + secilen diyerek istenilen class'a yönlendirmeyi sağlıyoruz.

Ayrıca Menu.java dosyamızı AnroidManifest.xml'de tanıtmayı unutmayalım.

        <activity
android:name=".Menu"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MENU" />

<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>


Makale görseli:


Hiç yorum yok :

Yorum Gönder