一.匿名內部類
1.初始化所有控件
private Button loginButton;
2.findViewById 返回一個View對象
loginButton = (Button) findViewById(R.id.button);//轉換方法的結果為Button類
2.設置監(jiān)聽器,通過監(jiān)聽器實現點擊時需要的方法
loginButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0) {//在當前OnClick方法中監(jiān)聽點擊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();//所有的點擊時間都要執(zhí)行的方法
}
}
4.為Button定義自己的方法
loginButton = (Button) findViewById(R.id.button);
loginButton.setOnClickListener(new MyOnClickListener()
{
@Override
public void onClick(View v){
super.onClick(v);//父類方法,即使用MyOnClickListener的所有點擊都要執(zhí)行的方法
funcSpecial();//該按鈕需要執(zhí)行的特定方法
}
}
);
三.接口方式實現
1,2步同一
3.在當前的類上實現對應的接口
public class MainActivity extends Activity implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
func();//該按鈕需要執(zhí)行的方法
}
}
4.編寫執(zhí)行方法需要的代碼
loginButton = (Button) findViewById(R.id.button);
loginButton.setOnClickListener(this);
通過this訪問當前類下的接口對象