//此处是MyBaseadapter 类。。省略。。。java
//定义接口ide
public interface OnItemClickLitenerpost
{this
void onItemClick(View view, int position);spa
void onItemLongClick(View view , int position);code
}对象
public OnItemClickLitener onItemClickLitener;接口
//暂时叫关联接口 事件
public void setOnItemClickLitener(OnItemClickLitener onItemClickLitener){get
this.onItemClickLitener = onItemClickLitener;
}
//设置回调事件
if (onItemClickLitener != null){
//这里你须要单击的控件(本身diy)
holder.text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = holder.getLayoutPosition();
onItemClickLitener.onItemClick(v,pos);
}
});
}
}
//activtiy代码
MyBaseadapter baseadapter = new MyBaseadapter(this,list);
//实现接口
baseadapter.setOnItemClickLitener(new MyBaseadapter.OnItemClickLitener() {
@Override
public void onItemClick(View view, int position) {
Toast.makeText(MainActivity.this,position+"",Toast.LENGTH_SHORT).show();
}
@Override
public void onItemLongClick(View view, int position) {
}
});
//理下思路:首先咱们在MyBaseadapter 定义了一个接口,接口有两个方法。。。能够看作单击事件的监听方法(接口方法不单单只有这么一点点功能),而后咱们在MyBaseadapter 写了一个获取接口对象的回调方法(注意:这就是接口回调的回调方法),接着在getview中关联控件的单击事件把postion和view返回出去(功能不惟一,有接口干啥事都方便);而后调用这个类的时候执行回调方法。。。控件的单击事件也就产生了。。
可能有人会说listview的单击事件就知足了为啥要画蛇添足。。。(不过这玩意是接口回调。。因此。。麻烦一些咯)