java-setOnItemClickListener和only onItemClick有什么区别

java-setOnItemClickListener和only onItemClick有什么区别,第1张

概述我搜索了互联网并在GoogleAndroid帮助中心中读出了文档,但是现在仍然不清楚两者之间的区别以及在什么情况下何时使用它?我经过堆栈溢出未找到任何详细答案.serviceListViewProviderPage.setOnItemClickListener(newAdapterView.OnItemClickListener(){@Override

我搜索了互联网并在Google Android帮助中心中读出了文档,但是现在仍然不清楚两者之间的区别以及在什么情况下何时使用它?
我经过堆栈溢出未找到任何详细答案.

serviceListVIEwProvIDerPage.setonItemClickListener(new AdapterVIEw.OnItemClickListener() {        @OverrIDe        public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) {                      //something to do        }    });

serviceListVIEwProvIDerPage.setonItemClickListener(this);public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) {//something to do}

提前致谢

解决方法:

两者相同,但声明和用法不同.首先,让我们看看我们在做什么.

这里:

vIEw.setonItemClickListener(Listener);

您正在您的视图中设置一个侦听器.

之后,您必须重写OnItemClickListener接口的onItemClick方法,以便遵循提供的合同并对项目单击进行 *** 作.

现在查看您的代码示例:

第一案

// set a Listener to your wIEw                 serviceListVIEwProvIDerPage.setonItemClickListener(      // create a new OnItemClickListener       new AdapterVIEw.OnItemClickListener() {    @OverrIDe    //     public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) {                  //something to do    }});

在这里,您在将侦听器设置为视图时将其声明为匿名内部类.

优点:

>快速编码

缺点:

>如果方法内部的逻辑太长或接口具有许多方法,则会降低可读性
>您不能在侦听器内部重用逻辑
> can cause memory leaks(感谢@Murat K)

第二例

要理解第二个,您必须看到代码必须在实现AdapterVIEw.OnItemClickListener的VIEw内,这就是为什么您可以使用此代码

// here you set the class itself as a ListenerserviceListVIEwProvIDerPage.setonItemClickListener(this);

但是,只要您必须遵循接口的约定,该类就必须实现该方法:

public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) {    //something to do}

优点:

>可读性
>可重用性

缺点:

>使VIEw成为Listener不是我的首选方式,我更喜欢拥有一个仅作为Listener的类,而另一个仅作为VIEw的类.

总结

以上是内存溢出为你收集整理的java-setOnItemClickListener和only onItemClick有什么区别全部内容,希望文章能够帮你解决java-setOnItemClickListener和only onItemClick有什么区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120885.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存