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/
