Android接口初了解
//此处是MyBaseadapter 类。。省略。。。
//定义接口
public interface OnItemClickLitener
{
void onItemClick(View view, int position);
void onItemLongClick(View view , int position);
}
public OnItemClickLitener onItemClickLitener;
//暂时叫关联接口
public void setOnItemClickLitener(OnItemClickLitener onItemClickLitener){
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的单击事件就满足了为啥要多此一举。。。(不过这玩意是接口回调。。所以。。麻烦一些咯)
更多相关文章
- ANDROID NDK使用第三方静态库的方法
- Android 应用退出的几种方法
- android 关于InputDispatcher出现Consumer异常的解决方法
- Android获取本机局域网IP的方法
- Android实现模拟点击的一种方法
- Android scrollview嵌套listview 滑动事件冲突的解决方法