关于Android 回调的小的案例
创建Mainactivity
* 创建回调借口MyCallBack
* 编写回调方法OnClick(String msg)
* Mainactivity实现回调借口MyCallBack
* MainActivity重写回调方法Onclick
* 创建外部类student
* 编写构造器参数为实现MycallBack借口类的对象
* MainActivity下new Student构造把当前MainActivity对象传递到Student
* 编写开始写作业方法start
* 在student下的start方法中编写子线程休眠5s
* 调用student下的Mainactivity对象下的onclick方法
* Mainactivity下的onclick方法中打印
package com.sxt.day02_callback;
`import android.util.Log;
/**
*/
public class Student {private MyCallBack call;
public Student(MyCallBack call){
this.call = call;//Mainactivity对象
}
public void startCall(){
new Thread(){
public void run(){
try {
Thread.sleep(5*1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.e("Main", "学生作业完成");
Log.e("Main", "学生作业交给老师");
//MainActivity下方法
call.OnClick("学生完成的作业");
}
}.start();
}
}
`
package com.example.huidiao;
/**
* 回掉接口
* @author micahel
*
*/
public interface MyCallBack {
/**
*
*///交作业的方法
public void onClick(String msg);
}
``## 主的类 ##
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity implements MyCallBack{
private MyCallBack call= null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
call= MainActivity.this;
Log.e("main", "老师布置作业");
new Student(call).startCall();//
Log.e("main", "老师布置完作业");
}
@Override
public void onClick(String msg) {
// TODO Auto-generated method stub
Log.e("main", "接受到"+msg);
}
“
}