请查看以下代码:
public class Hello
{
public void onSayHello()
{
}
}
public void test()
{
sayHello(new Hello()
{
public void onSayHello()
{
//do something
}
});
}
public void sayHello(Hello hello)
{
Toast.makeText(context, "Hello world");
hello.onSayHello();
}
这是一个很好的解决方案吗? 这是一个回调解决方案还是一个监听器解决方案?怎么称呼?
答案 0 :(得分:1)
您正在创建一个匿名的派生类。如果您想接收回叫,它不是首选解决方案。而是使用界面:
public class Hello {
public interface OnHelloSaidListener {
void onHelloSaid();
}
}
public void test() {
sayHello(new OnHelloSaidListener() {
@Override
public void onHelloSaid() {
// Do somth
}
});
}
public void sayHello(OnHelloSaidListener callback) {
Toast.makeText(context, "Hello world");
callback.onHelloSaid();
}