gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:42:11 27 4
gpt4 key购买 nike

我正在制作一个 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com