关于android:创建自己的OnItemClickListener
Create own OnItemClickListener
我认为问题说明了一切:我想为 ListView 创建一个自定义 OnItemClickListener。我想添加和更改 OnItemClickListener 的参数,但是如果我单击 ListView 中的项目,如何创建自己的参数?
相关讨论
- stackoverflow.com/questions/15222129/…我认为它可以帮助你
你首先创建一个接口,然后实现一个方法,在你的自定义类中设置监听器,然后已经创建一个主类来监听你的自定义事件
接口:
public interface OnCustomEventListener{
public void onEvent(); //can have parameters } |
方法在你的例如适配器:
私人 OnCustomEventListener mListener; //字段
//setter method
public void setCustomEventListener(OnCustomEventListener eventListener) { this.mListener=eventListener; } |
听众:
someObjectYouWantToHaveYourCustomListenerToBeAssignedFor.setCustomEventListener(new OnCustomEventListener(){
public void onEvent(){ //do whatever you want to do when the event is performed. } }); |
如何调用,例如从您的适配器:
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();