Android Programlama -11

Merhaba arkadaşlar bu gün ki makalemde listview komponenti’ nin xml ve java kodlarına değinip, nerelerde kullanıldığını anlatacağım.

Bir önceki makalede activity’ler arası geçişe değinmiştim. Okumadıysanız öncelikle onu okumanızı tavsiye ederim. Buradan okuyabilirsiniz.

 

 

 

Öncelikle bu komponenti hangi durumlarda kullandığımızdan bahsetmek istiyorum. Şöyle düşünün uygulamanız da alt lata bir sürü text göstermek istiyorsunuz, ama hepsi için alt alta textview kullanmak hem vakit kaybı hemde anlamsız bir şekilde kodun uzamasına sebep olur. Böyle durumlarda yazmak istediğimiz text’leri bir listeye atıp onuda listview komponenti sayesinde uygulamamızın arayüzünde göstermiş oluruz. Örneğin sizin için en uygun oteli aradığınız bir app düşünün. Alt alta bir sürü otel seçenekleri mevcuttur app de. İşte bu otel isimlerini listview kullanarak ekranda görünür hale getirmişler developer’lar.

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listview_exmple"
        android:layout_marginTop="20dp"
        ></ListView>

</RelativeLayout>

Neden böyle bir komponente ihtiyaç duydugumuzu öğrendikten sonra xml kodlamaya geçebiliriz.

 

 

Bu komponentin kodlaması daha önce gördüğümüz komponentlere çok yakındır. İlk olarak olmazsa olmaz olan yükseklik ve genişlik değerlerimizi belirliyoruz. Daha sonra bu komponent üzerinde işlem yapabilmemiz için id değerini belirtiyoruz.

Ve son olarak ben listview ile ekranın üst kısmı arasında 20 dp lik bir boşluk olmasını istediğim için, margin_top özelliğini aktifleştirip bunu 20 dp’ ye set ediyorum. Xml kodlamada en önemli noktalardan biri olan açılan her tag’ ın kapatılması gerektiğidir. Bu yüzden son olarak açmış olduğum RelativeLayout ve Listview komponentlerinin tag’lerini kapatarak xml kodlamasını bitiriyorum.

package com.example.mac.makale;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    
    
ListView listView;
ArrayList<String> arrayList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
      listView=(ListView)findviewByid(R.id.listview_exmple);
      
      arrayList=new ArrayList<>();
      
      arrayList.add("Bu");
      arrayList.add("bir");
      arrayList.add("Android");
      arrayList.add("Eğitim");
      arrayList.add("Serisidir..");
      
      
    }
}

Java kodlarımıza bakacak olursak; öncelikle listview’ ın java kodlama da kullanacağımız global değişkenini tanımlıyoruz.

Bunun yanın da Arraylist değişkenini de oluşturuyoruz. Arraylis’ ti ilk defa kullanıyoruz kodlarımız da. Bu bileşene Listview da göstermek istediğimiz değerleri yazıp öyle listview’ ı set ediyoruz. Bu dersimizde sadece Arrayliste nasıl değer atanır kısmını göreceğiz. Listview ile arrayListi nasıl birleştirdiğimiz kısmını bir sonraki dersimizde anlatacağım.

 

 

Kodu incelemeye devam edersek, findviewbyid methodu sayesinde xml kodlama da belirlediğimiz id değeri ile global tanımladığımız listview değişkenini bağlamış oluruz.

Sonra arraylist’ in yakıcı fonksiyonunu çağırarak boş bir şekilde create ediyoruz. Ve daha sonra add methodu sayesinde arrayliste eklemek istediğimiz string değerlerini ekliyoruz. Bu araylist’e string değerlerini atadık çünkü en başta tanımlarken türünü string olarak belirledik. Eğer siz daha farklı bir veri türü ile arraylist’inizi oluşturmak isterseniz bunu en başta tanımlama esnasın da yapmanız gerekmektedir.

 

Bir makalenin daha sonuna geldik, esenle kalın..

About Kübra Hebeş

Bilgisayar Mühendisi

Leave a Reply

Your email address will not be published. Required fields are marked *