關於Android 回調的小的案例

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

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章