web-dev-qa-db-ja.com

ProgressBarを停止および開始する方法

ProgressBarを停止できません。スタイルはProgressBarStylesmallです。円形の小さなProgressBarを開始および停止するにはどうすればよいですか?

29
saqibabbasi

デフォルトでは、次のように、progressBarを表示し、不要な場合は非表示にできます。

progressBar.setVisibility(View.GONE);

プログラムで制御したい場合は、次の方法で実現できます。

progressBar.setVisibility(View.VISIBLE); //to show
progressBar.setVisibility(View.GONE); // to hide

ProgressDialogを使用することもできます。

private ProgressDialog progressDialog;
...

public void showProgressDialog() {
    if (progressDialog == null) {
        progressDialog = new ProgressDialog(PhotographerDetailActivity.this);
        progressDialog.setIndeterminate(true);
        progressDialog.setCancelable(false);
    }
    progressDialog.setMessage("your message");
    progressDialog.show();
}

public void dismissProgressDialog() {
    if (progressDialog != null ) {
        progressDialog.dismiss();
    }

それがあなたを助けることを願っています。

13
Riten

これにはAsyncTasksを処理する必要があります。

/*
 * We set the visibility to true. If it was already visible 
 * there's no need of doing this but we do it for the sake of readability.
 */
final ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar1);
progressBar.setVisibility(View.VISIBLE);
new AsyncTask<Void,Void,Void>(){

//The variables you need to set go here

    @Override
    protected Void doInBackground(final Void... params){
         // Do your loading here. Don't touch any views from here, and then return null
         return null;
    }


    @Override
    protected void onPostExecute(final Void result){
         // Update your views here
         progressBar.setVisibility(View.GONE);
    }
}.execute()
6
Charlie-Blake

それが役立つかどうかはわかりませんが、ProgressDialogを使用できます。 ProgressDialogという名前の実行中のprogressDialogがあり、progressDialog.dismiss();を使用できるとします。削除するProgressDialogのインスタンスが、実際に表示されているProgressDialogであることを確認してください。 progressDialog.isShowing();で確認できます。 ProgressDialogを開始するには:

progressDialog = ProgressDialog
                    .show(myActivityContext,
                            "ProgressDialog Title",
                                "ProgressDialog Body");

デフォルトでは、ProgressDialog UIは必要なだけ円形です。

4
Angelo

プログレスバーを隠す:progressBar.setVisibility(View.INVISIBLE);

プログレスバーを表示:progressBar.setVisibility(View.VISIBLE);

gONE VSでお読みください。目に見えない ここ

3
Hojat Modaresi

この古いトピックに出会い、みんながProgressDialogについて話していることに気付きました。 ProgressDialogは非推奨であり、代わりにProgressBarクラスを使用する必要があることに注意してください。

Android docs:

ProgressDialogを避ける

Androidには、プログレスバー付きのダイアログを表示するProgressDialogという別のダイアログクラスが含まれています。このウィジェットは、進行状況が表示されている間、ユーザーがアプリを操作できないようにするため、非推奨です。読み込みまたは不確定な進行状況を示す必要がある場合は、ProgressDialogを使用する代わりに、レイアウトで Progress&Activity の設計ガイドラインに従い、レイアウトで ProgressBar を使用する必要があります。

2
MvanDoorn

「未定」のプログレスバーがあり、スピンして「確定」されますが、そうではありません。後者に固執するだけで大​​丈夫です。 「決定」するには、そのxml要素にprogress属性を追加し、設定します

 style="?android:attr/progressBarStyleHorizontal"
        Android:indeterminate="false"

Android Circular Determinate ProgressBar

0
RexSplode