在代码中:
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v){
...
}
});
在button.setOnClickListener
函数调用中,我们是否(1)创建新的Button
对象,(2)调用新的Button
对象&#39 ; s OnClickListener
和(3)定义一个新类?为什么在函数调用中发生了这么多?有没有办法简化这段代码(例如,可能在外面单独定义类并将实例传递给此函数或类似的东西)?
答案 0 :(得分:1)
setOnClickListener的参数只有一个实例,它是OnClickListener类(恰好在Button类中定义,这就是你编写Button.OnClickListener的原因)。 所以(1)没有发生(你只是创建一个新的OnClickListener对象); (2)也没有发生,因为OnClickListener不是一个方法; (3)正在发生,它是OnClickListener类的一个匿名子类。
可以为OnClickListener子类创建一个命名类,只是有时更容易将动作代码放在定义按钮的代码旁边。在那里,您可以轻松引用该范围内的变量。 但是使它成为命名类允许您在其他按钮中重用代码。
答案 1 :(得分:-1)
请按照以下步骤操作 1.在活动中实现onclickListner 2.覆盖onClick方法,你应该在任何你想要的地方编写你的代码 3.按钮
上的setOnClickListener