java-setOnItemClickListener和only onItemClick有什么区别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-setOnItemClickListener和only onItemClick有什么区别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1766字,纯文字阅读大概需要3分钟。
内容图文
我搜索了互联网并在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 listener
serviceListViewProviderPage.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有什么区别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。