Android Programlama -15

Merhaba arkadaşlar, bu günki makalemde custom adapter kodlamasını göreceğiz.

Bir önceki makalede custom adapter için gerekli olan model classını oluşturduk. Okumadıysanız öncelikle onu okumanızı tavsiye ederim. Buradan okuyabilirsiniz.

 

 

package com.example.teka.icim_rahat.adapters;

import android.content.Context;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.teka.icim_rahat.R;
import com.example.teka.icim_rahat.models.icirahat_class;

import java.io.IOException;
import java.util.ArrayList;

/**
 * Created by teka on 25.7.2017.
 */

public class kullanici_adpter extends ArrayAdapter<icirahat_class> {

    public kullanici_adpter(@NonNull Context context, @LayoutRes int resource, @NonNull ArrayList<icirahat_class> objects) throws IOException {

        super(context, resource, objects);}

    int sayac=0;

    @NonNull
    @Override

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

        View v = convertView;

        if (v == null) {
            LayoutInflater vi;
            vi = LayoutInflater.from(getContext());
            v = vi.inflate(R.layout.icim_rahat_class, null);}

        icirahat_class hs = getItem(position);

        if (hs != null) {

            final ImageView txt = (ImageView) v.findViewById(R.id.txt);
            TextView yorum = (TextView) v.findViewById(R.id.yorum);
            final Button like = (Button) v.findViewById(R.id.like);
           txt.setImageResource(R.drawable.res);
            yorum.setText("cocuklarrrr");
            like.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    sayac++;
                    if (sayac%2==1){
                    like.setBackgroundResource(R.drawable.like);}
                else {
                like.setBackgroundResource(R.drawable.like_white);}
                }

            });}
return v;
    }
}

 

Kodumuzu inceleyecek olursak;

 

 

Adapter classımızı ArrayAdapter classın dan extend ediyoruz. ArrayAdapter’ ın türünü ise bir önceki derste oluşturduğumuz model den oluşturuyoruz. Sonra adapter’ ın yapıcı methodunu tanımlıyoruz. Bu methodu tanımlarken create esnasın da hangi parametreler ile create etmemiz gerektiğini belirleriz.

getView methodunun içine adapter’ımız da yapmaka istediklerimizin kodlamasını yapıyoruz. Listview item ımlarının görünümleri için oluşturduğumuz layout dosyasına eklediğimiz komponentler üzerin de yapacağımız bütün işlemler adapter classının için de kodlanılır.

 

 

Örneğin kodumuz da, textview’ ın text ini değiştirip,imageview’ a drawable klasörün de bulunan bir image’i set ediyoruz. Like buton’unun tıklanma özelliğini aktifleştirip, tıklanma sayısına göre buton’ un background’ unu  değiştiriyoruz.

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

Kübra Hebeş

Bilgisayar Mühendisi

Leave a Reply

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