当前位置: 首页 > 面试题库 >

如何在Android中定义回调?

席俊驰
2023-03-14
问题内容

在最近的Google IO中,有一个有关实现宁静的html" target="_blank">客户端应用程序的演示。不幸的是,这只是高层讨论,没有实现的源代码。

在此图中,在返回路径上,有各种不同的对其他方法的回调。

Google io演示幻灯片

如何声明这些方法是什么?

我了解回调的想法-发生某个事件后会调用一段代码,但是我不知道如何实现它。到目前为止,实现回调的唯一方法是重写各种方法(例如onActivityResult)。

我觉得我对设计模式有基本的了解,但是我继续着迷于如何处理返回路径。


问题答案:

在许多情况下,您都有一个接口并传递实现该接口的对象。例如,对话框具有OnClickListener。

就像一个随机的例子:

// The callback interface
interface MyCallback {
    void callbackCall();
}

// The class that takes the callback
class Worker {
   MyCallback callback;

   void onEvent() {
      callback.callbackCall();
   }
}

// Option 1:

class Callback implements MyCallback {
   void callbackCall() {
      // callback code goes here
   }
}

worker.callback = new Callback();

// Option 2:

worker.callback = new MyCallback() {

   void callbackCall() {
      // callback code goes here
   }
};

我可能弄乱了选项2中的语法。这还为时过早。



 类似资料:
  • 但似乎什么都没起作用。

  • 我正在开发一个应用程序,我想在其中显示一个,但我想替换默认的Android。 那么如何自定义呢? 我需要一些图形和动画吗? 我读了下面的帖子,但没能成功: 自定义进度条Android

  • 问题内容: 我可以创建自定义属性并将其应用到normal ,如下所示: 我的问题:是否可以在不创建扩展类的情况下读取这些自定义属性的值?我的意思是,我想从我的中读取自定义属性,但是到目前为止,我所看到的示例要求我从自定义视图的构造函数中读取值 问题答案: 我的问题:是否可以在不创建扩展EditText的类的情况下读取那些自定义属性的值? 是的,您无需扩展类即可获取这些属性。为此,你可以使用一个特殊

  • 问题内容: 我试图用返回自定义json,但总是得到响应。 如果我删除所有内容,我将获得标准json数据的正确响应。我做错了什么? 问题答案: 如果您不需要ModelViewSet而只想在GET请求上使用自定义JSON 您也可以使用,不需要模型 和 使用ModelViewSet 您已将自定义JSON放入get_queryset中,这是错误的。如果您想使用,仅此一项就足够了: 这种带有默认实现,,,,

  • 问题内容: 在台湾,我们有一种称为“ Unicode At One(UAO)”的字符编码,它是对BIG-5的扩展,但Java和Android不支持。 代码页位于http://moztw.org/docs/big5/table/uao241-b2u.txt 我的问题是,如何使用此字符集构建具有字节数组数据的String对象? 我想我将扩展String类并在其中进行一些操作,但是我不知道如何创建新的C

  • 我想创建一个如下所示的自定义对话框 我试过以下几件事。 > 我创建了AlertDialog.Builder的子类,并使用了自定义标题和自定义内容视图,但结果不是预期的。 另一个尝试是子类DialogFragment并自定义onCreateDialog中的对话框,但结果并不像预期的那样。 然后我尝试使用一个普通的对话框类。结果不如预期。 在这三种情况下,问题是当我忽略标题视图时,对话框的大小不像预期