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

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值