java - 在制作Android SDK时,有没有一种方法可以不断更新开发人员的值,而无需他们传递 View ?

标签 java android android-library

我正在制作一个 Android SDK,并希望向开发人员公开一个计时器。我想完全控制计时器,例如何时启动、停止等。

我想到的解决方案之一是,如果开发人员传入一个 TextView,我可以根据计时器的计数不断更改 TextView 的文本。有什么方法可以将这个计数公开为一个值吗?

最佳答案

通常,处理此类情况的方法是使用回调接口(interface)。

只需创建一个回调接口(interface),如下所示:

public interface TimerListener {
    void getTimerTick(long time);
}

然后将此接口(interface)添加为类中保存计时器的全局字段,包括“设置”此接口(interface)的方法...例如:

public class Timer {
    ...
    private TimerListener listener;
    ...
    public setTimerListener(TimerListener listener){
        this.listener = listener;
    }
    ...
}

最后,在代码的特定部分,您只需调用

if(listener != null)
    listener.getTimerTick(time);

时间是通过计时器传递给您的值。通过代码的特定部分,我的意思是当您的计时器提供时间时。例如,如果您使用 CountDownTimer,您可以将该监听器代码放置在 onTick() 方法中。

这样,当开发人员使用您的 SDK 时,如果他们对获取计时器感兴趣,他们只需编写如下内容:

customTimer.setTimerListener(new TimerListener(){
    @Override
    public void getTimerTick(long time){
        textView.setText(String.valueOf(time));
    }
});

通过回调接口(interface),如果开发人员感兴趣,您将能够向他们提供计时器值,并且他们将能够在 TextView、日志或他们想要的任何其他类型的计算中使用它他们的值(value)。

我建议不要传入 TextView,因为 View 是不应该粗心传递的东西。您最好向开发人员提供他们应该用来处理的值,而不是向您传递一个供 SDK 使用的 View 。

关于java - 在制作Android SDK时,有没有一种方法可以不断更新开发人员的值,而无需他们传递 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303145/

相关文章:

Java/Scala 以类型安全的方式获取 Field 引用

android - 如何在现有项目中创建和使用 Android 库

java - Firebase - (具有多个子节点用户唯一键的 DataSnapshot ) - 空对象引用

java - android 获取 android 库上下文与应用程序上下文

android - 更新Android Studio后,没有支持库下载

java - AdWords Java 集成

java - 发现类型不匹配 : Required: Context,:Intent

Java,对象网格

java - 反射不适用于 Android 发布的 apk。即使禁用了 proguard/minify

Android 解析 "invalid session token"错误