關於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);
}
“
}