gpt4 book ai didi

java - 安卓 Java : "Cannot resolve" in postDelayed

转载 作者:行者123 更新时间:2023-12-02 03:08:28 25 4
gpt4 key购买 nike

我正在使用第一个答案 here尝试启动重复任务,更新搜索栏(“timeSlider”)以在音频文件播放时显示进度。重复函数是updateTimeSlider()。当通过 postDelayed 启动时,updateTimeSlider 会给出“无法解析符号”错误(请参阅本文底部的图片)。 updateTimeSlider() 在单独一行时不会给出该错误(也如图所示)。

(请注意,该行中的 updateTimeSlider() 本身并不是代码真正的运行方式。它只是为了演示它在该位置上的工作原理。)

任何人都可以帮助我了解如何纠正 postDelayed 行中的问题吗?

有几个人建议我只是忘了在 doUpdateTimeSlider 中编写 do。我没忘。我想执行 updateTimeSlider (没有 do),它确实执行得很好,并且不会在 postDelayed 之外产生错误。 updateTimeSlider 是一个通过 JNI(Java native 接口(interface))使用的 C++ 函数,使用此 Java 文件底部的语句,如下所示:

private native void updateTimeSlider();

JNI 方面工作正常,updateTimeSlider() 是我尝试执行的方法,而不是 doUpdateTimeSlider

顺便说一句,我确实尝试将 doUpdateTimeSlider 放在那里,它也会导致错误:变量 doUpdateTimeSlider 可能尚未初始化

not initialized error

我也不知道如果我可以执行 doUpdateTimeSlider 会对我有什么好处,因为其中没有代码来实际更新 timeSlider 搜索栏。

public class PlayActivity extends AppCompatActivity {

private static final String TAG = "PlayActivity";
boolean playing = false;
private int timeSliderInterval = 1000; // 1 second
private Handler timeSliderHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play);

final Runnable doUpdateTimeSlider = new Runnable() {
@Override
public void run() {
timeSliderHandler.postDelayed(updateTimeSlider, timeSliderInterval);
updateTimeSlider();
}
};

enter image description here

最佳答案

您可以替换:

timeSliderHandler.postDelayed(updateTimeSlider, timeSliderInterval);

与:

timeSliderHandler.postDelayed(doUpdateTimeSlider, timeSliderInterval);

您忘记在 doUpdateTimeSlider 中写入 do

关于java - 安卓 Java : "Cannot resolve" in postDelayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41414330/

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