关于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);
}

}

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