借鉴:http://blog.csdn.net/xiaanming/article/details/8703708
回调的语法:
- Class A实现接口CallBack callback——背景1
- class A中包含一个class B的引用b ——背景2
- class B有一个参数为callback的方法f(CallBack callback) ——背景3
- A的对象a调用B的方法 f(CallBack callback) ——A类调用B类的某个方法 C
- 然后b就可以在f(CallBack callback)方法中调用A的方法 ——B类调用A类的某个方法D
public class MainActivity extends Activity implements View.OnClickListener{
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
}
}
MainActivity实现了OnClickListener接口
MainActivity包含了Button的引用button
Button中的父类View有setOnClickListener(OnClickListener)这个方法
MainAcivity调用setOnClickListener(OnClickListener)这个方法
然后button的父类可以在setOnClickListener方法中调用MainAcivity的onClick方法
另外一个,匿名内部类的
public class MainActivity extends Activity{
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}