大家都知道Android中listview是一个常用的控件,也是一个比较复杂的控件,一般实现listview的条目点击事件就是给listview实现setOnItemClickListener的方法就行,但是当我们遇到listview中的有按钮的时候想实现
按钮的点击事件这样做是不行的,比如QQ空间的说说评论和点赞其实就是相当于两个按钮。一般实现这两个按钮的点击事件归结为一种思想---接口回调。具体实现的话有两种方法,一中是通过实现接口方法,一中是通过实
现抽象方法。当然接口和抽象类在java中其实差不多的东西,虽然两者有很大不同,但是他们有着一样的功能。
按钮的点击事件这样做是不行的,比如QQ空间的说说评论和点赞其实就是相当于两个按钮。一般实现这两个按钮的点击事件归结为一种思想---接口回调。具体实现的话有两种方法,一中是通过实现接口方法,一中是通过实
现抽象方法。当然接口和抽象类在java中其实差不多的东西,虽然两者有很大不同,但是他们有着一样的功能。
两种方法都有实现,其中还应当注意一般每个控件都有一个setTag()的方法,这个方法在这中问题上起着至关重要的作用。一般可以用来记录按钮的位置之类的。
抽象类的实现:
package com.example.listviewbuttonclick.adapter;
import android.view.View;
import android.view.View.OnClickListener;
public abstract class IClick implements OnClickListener {
@Override
public void onClick(View v) {
listViewItemClick((Integer) v.getTag(), v);
}
public abstract void listViewItemClick(int position, View v);
}