2017-01-01 87 views
0

这是我的第一款Android/Java应用程序。我使用的第一个答案here尝试主动重复任务,更新搜索条(“时间滑条”),以显示作为音频文件的播放进度。这里是我的代码(删除了一些不相关的行):的Android的Java:更新搜索条显示进度音频文件播放

private int timeSliderInterval = 1000; // 1 second 
private Handler timeSliderHandler; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_play); 
    Intent intent = getIntent(); 
    Runnable doUpdateTimeSlider = new Runnable() { 
     @Override 
     public void run() { 
      timeSliderHandler.postDelayed(doUpdateTimeSlider, timeSliderInterval); 
      updateTimeSlider(); 
     } 
    }; 

    void startUpdateTimeSlider() { 
     doUpdateTimeSlider.run(); 
    } 

    void stopUpdateTimeSlider() { 
     timeSliderHandler.removeCallbacks(doUpdateTimeSlider); 
    } 

    final SeekBar timeSlider = (SeekBar) findViewById(R.id.timeSlider); 

    if (timeSlider != null) { 
     timeSliderHandler = new Handler(); 
     startUpdateTimeSlider(); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     stopUpdateTimeSlider(); 
    } 

该项目不显示在模拟器中。工具提示显示这些错误:

enter image description here

此外,startUpdateTimeSliderstopUpdateTimeSlider功能都出现了这个错误提示:

enter image description here

此外,在运行窗口中,我越来越:

emulator: emulator window was out of view and was recentered

emulator: ERROR: _factory_client_recv: Unknown camera factory query name in ' '

任何帮助将不胜感激!

回答

0

第一个问题是自我解释,你需要添加final修改。

final Runnable doUpdateTimeSlider = ... 

第二个 - 移动startUpdateTimerSlider()方法,现在其内部onCreate()方法

看起来你错过了}

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_play); 
Intent intent = getIntent(); 
Runnable doUpdateTimeSlider = new Runnable() { 
    @Override 
    public void run() { 
     timeSliderHandler.postDelayed(doUpdateTimeSlider, timeSliderInterval); 
     updateTimeSlider(); 
    } 
}; 
}//<--------HERE 

void startUpdateTimeSlider() { 
    doUpdateTimeSlider.run(); 
} 
+0

您精确定位体现在这些错误的问题。谢谢!我不完全走出险境,很遗憾。我创建了一个新的问题:http://stackoverflow.com/questions/41414330/android-java-cannot-resolve-in-postdelayed – user1147171

+1

首先,新问题的意见是正确的答案 –