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/