我有一个关于使用自定义适配器为 ListView 创建点击监听器的最佳实践的问题。所以,我的问题是:在哪里更好地实现点击监听器?在自定义适配器中还是在 Activity 中实现 setOnItemClickListener 更好?
最佳答案
据我所知,没有“最好”的方法来做到这一点。这在很大程度上取决于您要实现的目标。
如果您只想让行中的一个单独元素可点击,那么您必须在 Adapters getView()
方法中执行此操作。
但是,如果您希望整行都可以点击,那么您可以选择在 getView()
方法中执行此操作,或者在 Activity 中使用 setOnItemClickListener()
如果您想分清哪种情况在后一种情况下会更好,这在一定程度上取决于单击该行时采取的操作。如果它是不需要访问许多其他对象的任意且小的东西,那么在 Adapter 内部将很容易。但是,如果它确实需要与其他对象(即上下文、数据源等)进行交互,那么如果您已经在 Activity 中引用了这些东西,那么在 Activity 中进行交互可能会更容易。这样您就无需将所有这些东西传递给适配器。
关于Android ListView ClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992399/