我正在编写我的第一个Android应用程序,并且在处理上下文对象时遇到了一些问题。许多方法/构造函数似乎需要当前上下文(活动),这会导致我的动作侦听器出现一些问题。我没有将所有的侦听器和处理程序作为活动类中的匿名类,而是为我想要处理的每个事件创建了类。例如,按钮buttonRegister将初始化为:
buttonRegister.setOnClickListener(new RegisterButtonClickAction());
但是,在执行此操作时,我无法访问侦听器中的当前上下文对象。我可以将当前上下文作为构造函数参数移交,但我不确定这是否是最佳选择。在Android中创建处理程序/侦听器或一般使用上下文对象的“最佳实践”是什么?
谢谢,
B3N
答案 0 :(得分:1)
只需在处理程序的构造函数中传递当前Context。
使用像这样的事件处理程序可能会变得混乱。大多数情况下,当你处理某个事件时 - 比如按下按钮 - 那么你想要改变Activity中其他变量的状态(改变一些数据结构,像TextView这样的UI元素,等等)。如果事件处理程序类在外面,您还必须为它可以修改的对象提供引用,可能在它的构造函数中。
我通常只使用匿名,或者至少是内部类,我认为这样更清洁,更简单。