一.匿名内部类
1.初始化所有控件
private Button loginButton;
2.findViewById 返回一个View对象
loginButton = (Button) findViewById(R.id.button);//转换方法的结果为Button类
2.设置监听器,通过监听器实现点击时需要的方法
loginButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0) {//在当前OnClick方法中监听点击Button的动作
// TODO Auto-generated method stub
func();//点击时的操作
}
}
);
}
二.外部类
1.2.步同匿名内部类,初始化所有控件,通过findViewById方法并转换得到Button对象
3.定义外部类
不继承OnClickListener——其为接口而非方法
class MyOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
funcAll();//所有的点击时间都要执行的方法
}
}
4.为Button定义自己的方法
loginButton = (Button) findViewById(R.id.button);
loginButton.setOnClickListener(new MyOnClickListener()
{
@Override
public void onClick(View v){
super.onClick(v);//父类方法,即使用MyOnClickListener的所有点击都要执行的方法
funcSpecial();//该按钮需要执行的特定方法
}
}
);
三.接口方式实现
1,2步同一
3.在当前的类上实现对应的接口
public class MainActivity extends Activity implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
func();//该按钮需要执行的方法
}
}
4.编写执行方法需要的代码
loginButton = (Button) findViewById(R.id.button);
loginButton.setOnClickListener(this);
通过this访问当前类下的接口对象