webentwicklung-frage-antwort-db.com.de

So stoppen und starten Sie eine ProgressBar

Ich kann ein ProgressBar nicht stoppen. Sein Stil ist ProgressBarStylesmall. Wie kann ich ein rundes kleines ProgressBar starten und stoppen?

26
saqibabbasi

Standardmäßig können Sie progressBar sichtbar machen und ausblenden, wenn dies nicht erforderlich ist:

progressBar.setVisibility(View.GONE);

Wenn Sie es programmgesteuert steuern möchten, können Sie dies mit erreichen:

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

Sie können sogar mit ProgressDialog gehen:

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();
    }

Ich hoffe es wird dir helfen.

13
Riten

Dazu müssen Sie mit AsyncTasks umgehen.

/*
 * 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

Ich weiß nicht, ob das hilft, aber Sie können ProgressDialog verwenden. Nehmen wir an, Sie haben ProgressDialog namens progressDialog und können progressDialog.dismiss(); verwenden. Stellen Sie nur sicher, dass die Instanz von ProgressDialog, die Sie abweisen, die ProgressDialog ist, die tatsächlich angezeigt wird. Sie können es mit progressDialog.isShowing(); überprüfen. So starten Sie eine ProgressDialog:

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

Standardmäßig ist die ProgressDialog-Benutzeroberfläche kreisförmig, so wie Sie es benötigen.

4
Angelo

fortschrittsbalken ausblenden: progressBar.setVisibility(View.INVISIBLE);

fortschrittsbalken anzeigen: progressBar.setVisibility(View.VISIBLE);

weiterlesen GONE VS. UNSICHTBAR hier

3
Hojat Modaresi

Kam durch dieses ältere Thema und bemerkte, wie jeder über den ProgressDialog spricht. Es sei darauf hingewiesen, dass der ProgressDialog veraltet ist und stattdessen die ProgressBar-Klasse verwendet werden sollte.

Aus den Android-Dokumenten:

Vermeiden Sie ProgressDialog

Android enthält eine weitere Dialogklasse namens ProgressDialog, die einen Dialog mit einer Fortschrittsleiste anzeigt. Dieses Widget ist veraltet, da es verhindert, dass Benutzer mit der App interagieren, während der Fortschritt angezeigt wird. Wenn Sie den Ladevorgang oder einen unbestimmten Fortschritt angeben müssen, sollten Sie die Entwurfsrichtlinien für Progress & Activity und eine ProgressBar in Ihrem Layout verwenden, anstatt ProgressDialog zu verwenden.

2
MvanDoorn

Es gibt "unbestimmte" Fortschrittsbalken, die sich drehen und "bestimmt", aber nicht. Halten Sie sich an letzteres und Sie werden in Ordnung sein. Um es "bestimmt" zu machen, fügen Sie das progress-Attribut zu seinem xml-Element, set, hinzu 

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

Android-Rundschreiben bestimmen Fortschrittsleiste

0
RexSplode