//此处是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) Eclipse "launching delegate" 停在 27%的解决方法
  2. Android(安卓)列表之分组ListView
  3. Android获取本机局域网IP的方法
  4. Android实现发送短信
  5. android 关于InputDispatcher出现Consumer异常的解决方法
  6. Android生命周期
  7. Android(安卓)应用退出的几种方法
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android(安卓)Annotations快速开发框架入
  2. yxl/DownloadProvider
  3. (Android) Binding to Data with AdapterV
  4. android手记之----Activity
  5. android pm命令
  6. Android/J2SE计算两个位置坐标之间的距离
  7. Android笔记之Ripple
  8. 移动安全测试框架MobSF(二):动态分析
  9. Android(安卓)Studio 在 win7 下的安装
  10. 如何进入android的官方开发者网站