Please take a look at this: OnItemClickListener. Implementation Example: setOnItemClickListener on custom ListView.
Since you have 3 buttons in each row of the list view and you have 3 diff implementation for them, there is another way of doing this.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(null == convertView){
holder = new ViewHolder();
convertView = inflater.inflate(LAYOUT_RESOURCE, null);
holder.btn1 = (Button) convertView.findViewById(R.id.btn1);
holder.btn2 = (Button) convertView.findViewById(R.id.btn2);
holder.btn3 = (Button) convertView.findViewById(R.id.btn3);
//setting tag to reduce hierarchy lookup
convertView.setTag(holder);
} else {
//getting tag to obtain the already found views
holder = (ViewHolder) convertView.getTag();
}
//Updating fields
holder.btn1.setOnClickListener(commonListener);
holder.btn2.setOnClickListener(commonListener);
holder.btn3.setOnClickListener(commonListener);
//returning the populated view
return convertView;
}
OnClickListener commonListener = new OnClickListener(){
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btn1:
//do your work
break;
case R.id.btn2:
//do your work
break;
case R.id.btn3:
//do your work
break;
default:
break;
}
}
});
/**
* Holder class to improve performance. Helps in reducing the lookup for
* views.
*
*/
private static class ViewHolder {
Button btn1;
Button btn2;
Button btn3;
}
Hope this helps.