web-dev-qa-db-fra.com

cercle de chargement androïde (spinner) entre deux activités

J'ai une activité principale à laquelle sont associés des boutons simples et des écouteurs. Chaque bouton ouvre une nouvelle activité (intention). Cependant, lors de l'ouverture de l'activité, le chargement prend un certain temps, ce qui provoque le gel de l'interface utilisateur. Je veux éviter cela en ajoutant simplement un cercle de chargement (spinner) entre les deux. J'ai cherché beaucoup de messages mais je n'ai toujours rien trouvé.

Par cercle de chargement, je veux dire ceci

 image

8
anil.e

C'est un Progress Bar . Vous pouvez créer ceci par programme ou en utilisant le widget en XML.

Pour implémenter en XML:

<ProgressBar
    Android:id="@+id/progress_loader"
    style="?android:attr/progressBarStyle"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_centerInParent="true"
    Android:visibility="visible" />

Pour implémenter en Java (à l'aide de Progress Dialog comme vous l'avez demandé dans les commentaires, vous pouvez également le faire avec Progress Bar)

 ProgressDialog nDialog;
 nDialog = new ProgressDialog(Login.this);
 nDialog.setMessage("Loading..");
 nDialog.setTitle("Get Data");
 nDialog.setIndeterminate(false);
 nDialog.setCancelable(true);
 nDialog.show();

Avant d’atteindre une activité suivante, vous devez dismiss() la barre de progression.

  nDialog.dismiss();
15
Parama Sudha

Il suffit d'utiliser le code ci-dessous dans la deuxième activité

<ProgressBar
    Android:id="@+id/progress_loader"
    style="?android:attr/progressBarStyle"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_centerInParent="true"
    Android:visibility="visible" />

faire disparaître la visibilité lorsque vous avez terminé l'initialisation

1
Suhaib Roomy

Vous ne pouvez pas éviter le gel de l'interface utilisateur en ajoutant un widget de chargement. Vous devrez trouver le code qui bloque votre thread principal et le déplacer vers un thread de travail. Regardez "Helper classes for threading" dans la documentation Android . Sans montrer votre code existant (pour que nous sachions ce qui bloque), nous ne pouvons pas vous en informer davantage.

Deuxièmement, si vous souhaitez afficher un widget de chargement entre les transactions d'affichage, vous pouvez restructurer votre application pour utiliser fragments . Une activité peut être utilisée pour basculer entre vos fragments, mais elle peut également contenir le widget qui peut être rendu visible avant de modifier des fragments et invisible une fois terminée.

0
Charlie