use*_*823 2 android progress-bar
我必须在 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);
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码,但它不起作用:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
我的进度条:
<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>
Run Code Online (Sandbox Code Playgroud)
进度条是我的进度条,请帮助我,tnx。
对于您的特定用例,使用处理程序会更简单:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
progressbar.setVisibility(View.GONE);
}
}, timerforprogressbar);
Run Code Online (Sandbox Code Playgroud)
您没有提到进度条是如何构建的,但如果您只是想显示不确定的进度,那么我认为以编程方式构建它将是最简单的事情。
private ProgressDialog working_dialog;
private void showWorkingDialog() {
working_dialog = ProgressDialog.show(context, "","Working please wait...", true);
}
private void removeWorkingDialog() {
if (working_dialog != null) {
working_dialog.dismiss();
working_dialog = null;
}
}
Run Code Online (Sandbox Code Playgroud)
这将使代码看起来像:
showWorkingDialog();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
removeWorkingDialog();
}
}, timerforprogressbar);
Run Code Online (Sandbox Code Playgroud)