2017-01-01 5 views
0

これは初めてのAndroid/Javaアプリです。私は最初の答えhereを使用して、オーディオファイルの再生中に進行状況を表示するシークバー(「timeSlider」)を更新して、繰り返しタスクを開始しようとしています。ここに私のコード(いくつかの無関係な行を削除)です: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修飾子を追加する必要があります。

@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

あなたはこれらのエラーに反映さの問題を正確に指摘: -

final Runnable doUpdateTimeSlider = ... 

2つ目は、あなたが}を逃したように、今その内部onCreate()方法

が見える、startUpdateTimerSlider()方法を移動します。ありがとうございました!残念ながら私はまだ森の外に出ていません。私は新しい質問を作成しました:http://stackoverflow.com/questions/41414330/android-java-cannot-resolve-in-postdelayed – user1147171

+1

新しい質問の最初のコメントは正しい答えです –

関連する問題