android - 什么是回调以及如何在 Android 中实现它们?

标签 android callback

<分区>

Possible Duplicate:
How to Define Callbacks in Android?

我在网上阅读了有关回调的内容,我了解到这在 Android 生态系统中具有重要的意义。

谁能说出一个例子并解释回调是什么,它们是如何工作的

最佳答案

你的意思是回调使用接口(interface)? 如果是,这里有一个例子

这是回调菜单.java

package com.example.test.callback;

public interface CallbackCalendar {
    public void onClick();
}

这是一个你如何实现它的例子

public class CallbackCell implements CallbackCalendar{

    @Override
    public void onClick() {
        Log.i("TAG", "IT WORKS!);
        addChild(2);
    }
}

这是一个允许您从另一个 View 访问一个 View 的示例 就像我在日历库中使用的一样,我创建了 3 个 View 类,日历 View 、日历行、日历单元格

通过将此回调从日历 View 传递到日历单元格,我们可以在日历单元格的日历 View 中添加 View 、设置值或任何其他内容(日历单元格是日历行的一部分,日历行是日历 View 的一部分)在这个例子中,我试图设置每当用户点击我们将在日历 View (主视图)中添加另一个 View 的单元格

这是在日历单元格中使用回调的例子

public CalendarCell(Context context,int day,final CallbackCalendar callback)
{
    super(context);
    final int temp = day;
    this.context = context;
    this.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
    LinearLayout.LayoutParams lpCalendarCell = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    lpCalendarCell.weight = 1;
    this.setLayoutParams(lpCalendarCell);
    this.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            callback.onClick();
        }
    });
    addContainer(day);
}

所以我在日历 View 中设置回调并将其传递给日历行,然后再次传递给日历单元格并在日历单元格中调用 onClick

我想就这些了,如果您有任何问题,请随时在评论中写下:)

关于android - 什么是回调以及如何在 Android 中实现它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13062033/

相关文章:

objective-c - AudioQueue 回调和 inUserData 指针生命周期

android - 使用 GPU 调试器 (GAPID) android studio

c# - 使用 PInvoke 的回调非常慢

java - 在 retrofit 回调中接收自定义参数

python - 以下超链接和 "Filtered offsite request"

c++ - api和回调函数的区别

java - 如果 JUnit 测试失败则停止测试

java - 更好地处理android中的数字格式异常

android - 当我尝试在 appbarlayout 或 CollapsingToolbarLayout 中添加 ImageView 时,应用程序变慢了。为什么?

java - Android (Java) 实时音频输入(麦克风和 USB)和输出