BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 7. Hafta
Birden fazla Activity ile çalışmak Yeni activity oluşturmak için en kısa yöntem src klasörü altında yeralan activity dosyasının kopyalarak gerçekleştirmektir. Benzer şekilde Layout dosyasıda kopyalanarak çoğaltılır. Yada yeni bir class oluşturulur. Oluşturulan sınıf Activity sınıfından miras alır. Oluşturulan dosyanın AndroidManifest dosyasına eklenmesi gerekmektedir. Bunun için AndroidManifest dosyası tıklandığında açılan pencere alt kısımda yer alan Application sekmesi tıklanır.
Birden fazla Activity ile çalışmak Bu pencerede Application Nodes kısmında yeralan Add.. butonu tıklanır.
Birden fazla Activity ile çalışmak Açılan pencerede Activity seçilir ve OK tıklanır.
Birden fazla Activity ile çalışmak Yan tarafta açılan kısımda Browse… komutu tıklanarak eklenecek Activity seçilir. Yada AndroidManifest.xml dosyası içerisinde Android etiketinin andrid:name özelliğine paket ismiyle beraber activity adı girilir.
Birden fazla Activity ile çalışmak
Intent Yeni bir activity açmak için Intent sınıfından yararlanılır. Intent intentadı=new Intent(getApplicationContext(),activity sınıfı); İle oluşturulur. Yada Intent intentadı=new Intent(pencereadı,açılacakpencereadı);
Intent Intent sınıfında activiyler arasında veri aktarımı için Intent_nesnesi.putExstra(anahtar,deger); komutu kullanılır. Okumak için getIntent().getExtras().getString(anahtar) kullanılır.
Intent Ya da parçalar halinde teker teker yazma işlemi gerçekleştirilir. Bundle bundle_isim=new Bundle(); Bundle_isim.putInt(Anahtar,deger); Intentadı.getExtras(bundle_isim); Ya da parçalar halinde teker teker okuma işlemi gerçekleştirilir. Intent Intent_isim=getIntent(); Bundle bundle_isim=Intent_isim.getExtras(); int isim=bundle_isim.getInt(anahtar);
Web Sayfası Görüntüleme Android uygulamalarında web sayfaları gösterimini gerçekleştirmek amacıyla WebView bileşeni kullanılır. HTML5 uyumlu gösterici web sayfası içeriğini gösterecektir. Gösterilecek websayfasının adresi, bileşenin loadUrl metoduna parametre olarak verilir..
Web Sayfası Görüntüleme Web sayfalarını görebilmek için projemize internete erişim izni vermemiz gerekmektedir. WebView bileşeninde web sayfaları gösterilebileceği gibi oluşturduğumuz html kodlarınıda gösterebiliriz. Bunun için loadData(htmlkodu,”text/html”,null) metodunu kullanılır.
Web Sayfası Görüntüleme WebView bileşeninde web sayfaları gösterilebileceği gibi oluşturduğumuz html kodlarınıda gösterebiliriz. Bunun için loadData(htmlkodu,”text/html”,null) metodunu kullanılır.
ListView Verileri tek satır içerisinde satırlar şeklinde listeleyerek göstermek amacıyla kullanılan bileşenlerden biride ListViewdir. ListView içerisinde temel veri türlerinden farklı olarak kendi oluşturacağımız veri yapısını göstermek için adapter içerisinde kullanılacak nesnelerin sınıf tanımının yapılması gerekmektedir.
ListView public class isim { private String ad; private String soyad; public isim(String a, String s) { super (); ad = a; soyad=s; } Örnek olarak kişilerin adını ve soyadını listeleyeceğimiz bir uygulama gerçekleştireceğimiz için “isim” isimli bir sınıf tanımlıyoruz. public void setAd(String a) { ad=a; } public void setSoyad(String s){ soyad=s;} public String getAd() { return ad; } public String getSoyad(){ return soyad; } }
ListView Kullanacağımız sınıfı tanımladıktan sonra bu sınıfı kullanacak olan bir Adapter tanımlıyoruz. import java.util.List; import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView;
ListView public class BenimAdapter extends BaseAdapter { Oluşturduğumuz adapter sınıfı BaseAdapter sınıfından miras almalıdır. BaseAdapter sınıfı içerisinde 4 adet Abstract sınıfın tanımlanması gerekir. private LayoutInflater inf; private List ismi; private Context content; Adapter içerisinde gruplanacak sınıf içerisinde bu sınıftan oluşturulan nesnenin alınacağı örnek tanımlanıyor. Activity ornek; Adapter’ in tanımlandığı activity’nin bilgilerinin tutulacağı değişken belirlenir. public BenimAdapter(Context content, ArrayList ismi) { this.content=content; this.ismi=ismi; Adapter tanımlandığında tanımlandığı yer ve kullanılan sınıfın alındığı metod }
public int getCount() { return ismi.size(); Listede kaç eleman olduğunun döndürüldüğü metot public isim getItem( int indis) { return ismi.get(indis); listede indis değeri gönderildiğinde elemanı döndüren metot public long getItemId( int indis) { return indis; }
public View getView( int indis, View v, ViewGroup arg2) { if(null==v) v=View. inflate(content,R.layout.arkaplan,null); TextView ad = (TextView) v.findViewById(R.id. ad ); TextView soyad = (TextView) v.findViewById(R.id. soyad ); isim isi = ismi.get(indis); ad.setText(isi.getAd()); soyad.setText(isi.getSoyad()); listenin kullandığı layout üzerindeki yapıları kullanarak listeyi dolduran metod return v; }
ListView ArrayList list; ListView liste; BenimAdapter protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout. activity_main ); Oluşturulan adapter sınıfının tanımlandığı ana activity’de listview’e adapterin eklenmesi.
ListView final ArrayList isimler = new ArrayList (); isimler.add( new isim("Ali","Gel")); isimler.add( new isim("Veli","Git")); liste=(ListView) findViewById(R.id. liste ); adapter= new BenimAdapter( this, isimler); liste.setAdapter(adapter); Oluşturulan adapter sınıfının tanımlandığı ana activity’de listview’e adapterin eklenmesi.
ListView Adapter’in içerisinde nesnenin nasıl listeleneceğini gösteren şablon dosyasının (layout altında xml dosyası) oluşturulması sağlanır. Android’ te hazır olarak gelen şablonlara ek olarak kendi şablonumuzu oluşturuyoruz. Android içerisinde hazır olarak gelen şablonlardan bazıları şu şekildedir:
ListView Kendi oluşturacağımız şablon için içerisinde her satırda bir resim, bir yazı ve bir butonun olduğu bir layout tasarlıyoruz. <LinearLayout xmlns:android= " android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:orientation= "horizontal" > <TextView android:id= android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:gravity= "center_vertical" android:text= "spor" android:textSize= "20sp" />
ListView Kendi oluşturacağımız şablon için içerisinde her satırda bir resim, bir yazı ve bir butonun olduğu bir layout tasarlıyoruz. <TextView android:id= android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:text= "stur" />
ListView Oluşturduğumuz bu arayüzü “arayuz.xml” olarak kaydediyoruz. Bu arayüzün içinde listeleneceği ListView’ in yer aldığı Ana activity’de gösterilecek Layout’u tasarlıyoruz. <RelativeLayout xmlns:android= " xmlns:tools= " android:layout_width= "match_parent" android:layout_height= "match_parent" android:paddingBottom= android:paddingLeft= android:paddingRight= android:paddingTop= tools:context= ".MainActivity" >
ListView Oluşturduğumuz bu arayüzü “arayuz.xml” olarak kaydediyoruz. Bu arayüzün içinde listeleneceği ListView’ in yer aldığı Ana activity’de gösterilecek Layout’u tasarlıyoruz. <ListView android:id= android:layout_width= "match_parent" android:layout_height= "wrap_content" android:layout_alignParentLeft= "true" android:layout_alignParentTop= "true" >
Android Konum Uygulamaları Kaynaklar: [1] [2] [3] 30android-location-api.htmlhttp:// 30android-location-api.html