Soru & Cevap

CustomListAdapter de hangi item a tıklandığı bilgisi.

07.04.2014 - 11:09

Hazırladığım CustomListAdapter  içinde  2 adet button'um var. hangisine tıklandıgını nasıl anlayabilirim ? 

bir tanesine basıldıgında ilgili satır için resim gostermek , diğerine tıklandıgında  başka bir sayfaya yonlendirme yapma kistiyorum. 

 

9 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-16908-1396912439.jpg
emre_koc
08.04.2014 - 01:47

Bunu yapabilmek için xml'de tasarladığın custom view'in kontrollerini yapacağın bir custom view sınıfı kullanman gerekmektedir.

 

child_view.xml

[code]<?xml version="1.0" encoding="utf-8"?>
<com.example.listviewexample.ChildView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
>

    <TextView
        android:id="@+id/lblExample"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <Button
        android:id="@+id/btnExample"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click !" />

</com.example.listviewexample.ChildView>[/code]

ChildView.java

[code]public class ChildView extends LinearLayout {

    private Button btnExample;
    private TextView txtExample;
    private Context context;

    public ChildView(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
    }

    public void setItem(final String car)
    {
        // TextView'in yazısını burada ayarlıyoruz.
        txtExample.setText(car);
        
        // Burada ise butonun click olayını dinliyoruz.
        btnExample.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
            
            }
        });
        
    }
    
    @Override
    protected void onFinishInflate() {
        // TODO Auto-generated method stub
        super.onFinishInflate();
        
    btnExample = (Button)    findViewById(R.id.btnExample);
    txtExample = (TextView)findViewById(R.id.lblExample);
    }
}[/code]

 

Bunları tamamladıktan sonra, CustomAdapter'ın getView fonksiyonunda 

 

[code]@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        
    
        ChildView myView;
        if (null == convertView) {
            myView = (ChildView)View.inflate(context,
                    R.layout.child_view,null);
        } else {
            myView = (ChildView)convertView;
        }
        
        myView.setItem("hello");
        
        return myView;
    }[/code]

 

 

Custom ListView ile ilgili bir yazıyı bloğumda paylaşmıştım. Linkte kodun tamamını inceleyebilir ve indirebilirsin.
http://www.emrekoc.net/#/android-listview-kullanimi-android-listview-example/ 

ilhan
08.04.2014 - 06:56
Emre Selam, Çok Teşekkürler, tam istediğim gibi. Saygılarımla.