【发布时间】:2012-12-21 15:02:30
【问题描述】:
我有一个关于使用自定义适配器为列表视图创建点击监听器的最佳实践的问题。所以,我的问题是:在哪里实现点击监听器更好?在自定义适配器中还是在Activity中实现setOnItemClickListener更好?
【问题讨论】:
标签: android android-listview onclicklistener onitemclicklistener
我有一个关于使用自定义适配器为列表视图创建点击监听器的最佳实践的问题。所以,我的问题是:在哪里实现点击监听器更好?在自定义适配器中还是在Activity中实现setOnItemClickListener更好?
【问题讨论】:
标签: android android-listview onclicklistener onitemclicklistener
AFAIK 没有“最好”的方法来做到这一点。这在很大程度上取决于您要达到的目标。
如果您只希望行中的一个单独元素可点击,那么您必须在 Adapters getView() 方法中执行此操作。
但是,如果您希望整行都可以点击,那么您可以选择在 getView() 方法中执行此操作,或者在 Activity 中使用 setOnItemClickListener() 执行此操作
如果您想拆分后一种情况下哪个更好,这将取决于单击该行时采取的操作。如果它是任意且小的东西,不需要访问许多其他对象,那么在适配器内部会很容易。但是,如果它确实需要与其他对象(即上下文、数据源等)交互,那么如果您已经在 Activity 中引用了这些东西,那么在 Activity 中执行它可能会更容易。这样您就无需将所有这些东西传递给适配器。
【讨论】:
在Activity 中实现setOnItemClickListener
【讨论】: