Мне нужно подождать несколько секунд в приложении для Android, и я хочу показать индикатор выполнения в течение этого времени, как я могу это сделать?Показывать ProgressBar в течение нескольких секунд в Android
, например:
@Override
protected void onCreate(Bundle savedInstanceState) {
timeForShow(5 //second);
}
.
.
.
private void timeForShow(long mytime){
myprogress.setVisibility(View.VISIBLE);
Waiting for mytime...
myprogress.setVisibility(View.GONE);
}
это мой код, но он не работает:
Long timerforprogressbar ;
@Override
protected void onCreate(Bundle savedInstanceState) {
timerforprogressbar = (long) 5000 ;
new MyProgressBar().execute((Void)null);
}
.
.
.
class MyProgressBar extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
progressbar.setVisibility(View.VISIBLE);
try {
Thread.sleep(timerforprogressbar);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
progressbar.setVisibility(View.GONE);
}
}
мой прогресс бар:
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:indeterminateDrawable="@drawable/progress" >
</ProgressBar>
прогрессбар мой прогресс бар , PLZ помочь мне, tnx.
Я попытался дать ответ, но я хотел бы еще некоторые детали вашей проблемы. Вы говорите, что это не работает. Что это делает неправильно? Не отображается ли индикатор прогресса, или как он не ведет себя так, как вы ожидаете? – cYrixmorten
У меня есть asynctask: http://paste.ubuntu.com/6846131/. это синтаксический анализ xml. теперь я создал функцию: http://paste.ubuntu.com/6846146/. Я хотел показать свой прогресс во второй раз (пользовательское время). Но моего прогресса не видно! – user3103823
Прежде всего, doInBackground работает в фоновом потоке, не нужно иметь executeThread. Во-вторых, как я упоминал в своем ответе, попробуйте и создайте progressdialog программно вместо этого, плохо сделайте редактирование моего ответа, продемонстрировав его через несколько секунд. – cYrixmorten