//此处是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的单击事件就满足了为啥要多此一举。。。(不过这玩意是接口回调。。所以。。麻烦一些咯)



更多相关文章

  1. ANDROID NDK使用第三方静态库的方法
  2. Android 应用退出的几种方法
  3. android 关于InputDispatcher出现Consumer异常的解决方法
  4. Android获取本机局域网IP的方法
  5. Android实现模拟点击的一种方法
  6. Android scrollview嵌套listview 滑动事件冲突的解决方法

随机推荐

  1. Android存储之SharedPreferences和File
  2. [gitbook] Android框架分析系列之Android
  3. Android电话秀(三)
  4. 安卓开发之去标题栏
  5. AndroidStudio3.6.3新版本遇到的坑
  6. android ndk 入门2 - 基本方法实现
  7. 安卓报错:java.lang.RuntimeException: Un
  8. android webview 截图快照
  9. Android 隐藏显示键盘
  10. Android JB 4.2 中InputManager 启动过程