关于android:创建自己的OnItemClickListener | 珊瑚贝

Create own OnItemClickListener


我认为问题说明了一切:我想为 ListView 创建一个自定义 OnItemClickListener。我想添加和更改 OnItemClickListener 的参数,但是如果我单击 ListView 中的项目,如何创建自己的参数?

  • stackoverflow.com/questions/15222129/…我认为它可以帮助你


你首先创建一个接口,然后实现一个方法,在你的自定义类中设置监听器,然后已经创建一个主类来监听你的自定义事件

接口:

1
2
3
public interface OnCustomEventListener{
  public void onEvent();   //can have parameters
}

方法在你的例如适配器:
私人 OnCustomEventListener mListener; //字段

1
2
3
4
//setter method
public void setCustomEventListener(OnCustomEventListener eventListener) {
   this.mListener=eventListener;
}

听众:

1
2
3
4
5
someObjectYouWantToHaveYourCustomListenerToBeAssignedFor.setCustomEventListener(new OnCustomEventListener(){
    public void onEvent(){
    //do whatever you want to do when the event is performed.
    }
});

如何调用,例如从您的适配器:

1
2
3
if(this.mListener!=null){
   this.mListener.onEvent();
}

附言您的自定义侦听器可能有任意数量的参数

来源

  • 谢谢你,但有一件事我不明白。为什么 OnCustomEventListener 知道如果我单击一个项目它应该调用?
  • 因为 OnCustomEventListener 充当回调
  • 我在我的类中实现了这三个步骤,但我无法收到任何 ClickEvents
  • @Cilenco 你什么时候打电话: this.mListener.onEvent(); ?
  • 我做了一个 extands ListView 的类。我把接口 OnCustomEventListener 和方法 setCustomEventListener(OnCustomEventListener eventListener) 放在那里。在我的活动中,我在里面调用 myListView.setCustomEventListener(new …) 事件。
  • @Cilenco您可以在自定义类中使用 Log.i(…) 吗 extends ListView 在应该触发事件的那部分中,以查看它是否实际被触发
  • 我得到了它的工作一点点。该事件在活动开始时触发,但如果我单击一个项目则不会…
  • @Cilenco 不要忘记,每次您希望主类知道操作已启动时,您都必须调用`this.mListener.onEvent();`
  • 我认为我的问题是我必须从 onTouchEvent 方法触发事件,对吗?如何在这种方法中检查点击?还是我误解了什么?
  • @Cilenco 好吧,是的,我相信是这样,我不知道您的代码是什么样的,所以我不确定,但是是的,您应该在某些事件发生时触发事件。触发事件:this.mListener.onEvent();


来源:https://www.codenong.com/18032939/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?