Listview Kullanımı

listview

 

Herkese merhabalar. Uzun bir süre yoğunluğumdan dolayı yazılarıma ara verdim. Bu yazımda belki de mobil uygulama geliştirirken en sık kullandığımız UI elemanı olan Listview’i nasıl kullanacağımızdan bahsedeceğim.

Bu bölümde kendi düzenimize ve tasarımımıza uygun, özel (Custom) bir ListView oluşturacağız. Bittiğinde şöyle görünecek:

listview1

 

Kodlara geçmeden önce Listview kullanımının mantığını anlatmak istiyorum. Listview’i özelleştirdiğimiz zaman yukarıdaki resimde olduğu gibi ImageView, TextView gibi farklı elemanları bir arada kullanırız ve ListView içerisindeki her satırın tasarımını kendimiz yaparız. Yaptığımız satır tasarımı ayrı bir .xml dosyasında, listviewi ayrı bir .xml dosyasında tutarız. Bu iki ayrı .xml dosyasını Adapter adını verdiğimiz yapıyla birbirine bağlarız ve Activity’mizin içerisinde gösteririz. Bu olayı daha iyi anlamak için aşağıdaki resmi inceleyelim;

adapter
https://gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-201/listview-kullanimi

 

Şimdi kodlamamıza geçebiliriz..

activity_main.xml

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:orientation=”vertical” >

<ListView
android:id=”@+id/listeAlbum”
android:layout_width=”match_parent”
android:layout_height=”wrap_content” >
</ListView>

</LinearLayout>

 

menusatir.xml

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent” >

<ImageView
android:id=”@+id/imgMuzik”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignParentLeft=”true”
android:layout_alignParentTop=”true”
android:layout_marginLeft=”19dp”
android:layout_marginTop=”28dp”
android:src=”@drawable/muzik” />

<TextView
android:id=”@+id/txtAlbumAdi”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignTop=”@+id/imgMuzik”
android:layout_marginLeft=”18dp”
android:layout_toRightOf=”@+id/imgMuzik”
android:text=”Large Text”
android:textAppearance=”?android:attr/textAppearanceLarge” />

<TextView
android:id=”@+id/txtAlbumYili”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_below=”@+id/txtAlbumAdi”
android:layout_centerHorizontal=”true”
android:text=”Medium Text”
android:textAppearance=”?android:attr/textAppearanceMedium” />

<ImageView
android:id=”@+id/imgNext”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignParentRight=”true”
android:layout_alignTop=”@+id/txtAlbumAdi”
android:layout_marginRight=”23dp”
android:src=”@drawable/ic_action_next_item” />

</RelativeLayout>

 

Albumler.java

package com.hakankanmaz.listview001;

public class Albumler {

String albumAdi;
String albumYili;
int albumResmi;

public Albumler(String albumAdi, String albumYili,int albumResmi){
this.albumAdi=albumAdi;
this.albumYili=albumYili;
this.albumResmi=albumResmi;
}

public String getAlbumAdi() {
return albumAdi;
}

public void setAlbumAdi(String albumAdi) {
this.albumAdi = albumAdi;
}

public String getAlbumYili() {
return albumYili;
}

public void setAlbumYili(String albumYili) {
this.albumYili = albumYili;
}

public int getAlbumResmi() {
return albumResmi;
}

public void setAlbumResmi(int albumResmi) {
this.albumResmi = albumResmi;
}
}

 

AlbumAdapter.java

package com.hakankanmaz.listview001;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class AlbumAdapter extends BaseAdapter {

private LayoutInflater mInflater;
private List<Albumler> albumListesi;

public AlbumAdapter(Activity activity, List<Albumler> albumler) {

mInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
albumListesi = albumler;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return albumListesi.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return albumListesi.get(position);
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

View satirView;
satirView = mInflater.inflate(R.layout.menusatir, null);

TextView albumadi=(TextView) satirView.findViewById(R.id.txtAlbumAdi);
TextView albumyili=(TextView) satirView.findViewById(R.id.txtAlbumYili);
ImageView albumresmi=(ImageView) satirView.findViewById(R.id.imgMuzik);
ImageView nexticon=(ImageView) satirView.findViewById(R.id.imgNext);

Albumler album=albumListesi.get(position);

albumadi.setText(album.getAlbumAdi());
albumyili.setText(album.getAlbumYili());
nexticon.setImageResource(R.drawable.ic_action_next_item);

switch (album.albumResmi) {
case 1:
albumresmi.setImageResource(R.drawable.album1);
break;
case 2:
albumresmi.setImageResource(R.drawable.album2);
break;
case 3:
albumresmi.setImageResource(R.drawable.album3);
break;
case 4:
albumresmi.setImageResource(R.drawable.album1);
break;
case 5:
albumresmi.setImageResource(R.drawable.album5);
break;
case 6:
albumresmi.setImageResource(R.drawable.album6);
break;
case 7:
albumresmi.setImageResource(R.drawable.album7);
break;
default:
break;
}

return satirView;

}

}

 

MainActivity.java

package com.hakankanmaz.listview001;

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

final List<Albumler> albumler=new ArrayList<Albumler>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

albumler.add(new Albumler(“Kadın”, “1996”,1));
albumler.add(new Albumler(“Artık Kısa Cümleler Kuruyorum”, “1999”,2));
albumler.add(new Albumler(“Perdeler”, “2001”,3));
albumler.add(new Albumler(“Kelimeler Yetse”, “2003”,1));
albumler.add(new Albumler(“Can Kırıkları”, “2005”,5));
albumler.add(new Albumler(“Benim Adım Orman”, “2009”,6));
albumler.add(new Albumler(“Od”, “2013”,7));

final ListView listeAlbum = (ListView) findViewById(R.id.listeAlbum);
AlbumAdapter adaptorumuz=new AlbumAdapter(this, albumler);
listeAlbum.setAdapter(adaptorumuz);

listeAlbum.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch (position) {
case 0:
Toast.makeText(getApplicationContext(), “Kadın Albümünü Seçtiniz”, Toast.LENGTH_LONG).show();
break;
case 1:
Toast.makeText(getApplicationContext(), “Artık Kısa Cümleler Kuruyorum Albümünü Seçtiniz”, Toast.LENGTH_LONG).show();
break;
case 2:
Toast.makeText(getApplicationContext(), “Perdeler Albümünü Seçtiniz”, Toast.LENGTH_LONG).show();
break;
case 3:
Toast.makeText(getApplicationContext(), “Kelimeler Yetse Albümünü Seçtiniz”, Toast.LENGTH_LONG).show();
break;
case 4:
Toast.makeText(getApplicationContext(), “Can Kırıkları Albümünü Seçtiniz”, Toast.LENGTH_LONG).show();
break;
case 5:
Toast.makeText(getApplicationContext(), “Benim ADım Orman Albümünü Seçtiniz”, Toast.LENGTH_LONG).show();
break;
case 6:
Toast.makeText(getApplicationContext(), “Od Albümünü Seçtiniz”, Toast.LENGTH_LONG).show();
break;
default:
break;
}
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

listview2

Kodlarımız bu şekilde.. Kodları indirip inceleyebilirsiniz. Herkese bol Android’li günler 🙂

ListView001.rar

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir