android: afficher la boîte de dialogue de progression lors de l'attente pour la connexion
Je suis en train d'ajouter une boîte de dialogue de progression lorsque l'activité nouvelle est lancé qui doit attendre une réponse de l'internet. Pour le moment l'écran devient noir alors qu'il est en attente. Quelqu'un sait où il doit être placé au travail?
ce progressDialog:
ProgressDialog dialog = ProgressDialog.show(SearchActivity.this, "", "Loading. Please wait...", true);
dialog.dismiss();
c'est dans le overlayActivity s'étend ItemizedOverlay:
@Override
protected boolean onTap(int index) {
final OverlayItem item = (OverlayItem) items.get(index);
final Context mContext = context;
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle(item.getTitle())
.setCancelable(true)
.setPositiveButton("View Details", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(mContext, Profile.class);
intent.putExtra("id", item.getSnippet());
mContext.startActivity(intent);
}
});
AlertDialog alert = builder.create();
alert.show();
return true;
}
et c'est le Profil de l'activité:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.profile);
Bundle extras = getIntent().getExtras();
String id;
if (extras != null) {
id = extras.getString("id");
String xml = XMLfunctions.getXMLFromBarId(id); //makes httpPost call
Document doc = XMLfunctions.XMLfromString(xml);
NodeList nodes = doc.getElementsByTagName("result");
Element e = (Element)nodes.item(0);
//rest of profile created here
}
}
OriginalL'auteur Paul | 2011-06-26
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser la boîte de dialogue de Progression. Boîte de dialogue de progression devrait être utilisé dans le Profil de l'activité.
Vous pouvez utiliser le code suivant:
The runnable will be run on the thread to which this handler is attached.
Ne pas oublier cela.OriginalL'auteur Walid Hossain
Faire des appels de réseau dans le thread de l'INTERFACE utilisateur (le thread qui appelle "onCreate") est une mauvaise idée. Il va de décrochage de l'actualisation de l'INTERFACE utilisateur jusqu'à l'exploitation du réseau est terminée. Au lieu de cela, générer un nouveau thread dans le onCreate de la sorte:
Aussi, je vous recommande d'utiliser un ProgressDialog pour montrer les progrès accomplis (qui vous pouvez faire disparaître, une fois que le code dans le thread est fait). Tutoriel: http://developer.android.com/guide/topics/ui/dialogs.html
Note: Vous ne pouvez pas fermer la boîte de dialogue de la nouvelle thread, de sorte que vous aurez à utiliser un Gestionnaire de poster un message du thread le thread d'INTERFACE utilisateur. Voici un tutoriel pour que: http://www.tutorialforandroid.com/2009/01/using-handler-in-android.html
Exemple:
Dans votre Profil de l'activité de la classe, ajoutez ceci:
Pouvez-vous me dire où vous tentez d'afficher les données. Comme je l'ai mentionné, toute tentative de mise à jour de l'INTERFACE utilisateur dans un thread différent, va échouer. Vous devez envoyer un Message à le thread d'INTERFACE utilisateur à l'aide d'un Gestionnaire.
L'INTERFACE utilisateur est mise à jour dans le fil, juste après la "Élément e = ...". Tout ce qui se passe à côté, le fil conducteur est le XMLfunctions méthodes d'extraire les données à partir d'un flux XML.
Qui est ce que j'ai mentionné. Vous ne pouvez pas mettre à jour l'INTERFACE utilisateur du nouveau fil de discussion que nous avons créé (networkThread). Vous devrez effectuer les opérations de réseau et l'article se lit dans le networkThread et puis envoyer un message en retour, qui est prise en charge par le Gestionnaire de classe, vous devez l'initialiser dans le onCreate() (thread d'INTERFACE utilisateur).
J'ai été de tenter d'obtenir que cela fonctionne pendant plus d'une heure avec pas de chance. Même le tutoriel, il dit que c'est dur à expliquer, et il ne semble pas fonctionner avec mon application. Je pense que je vais laisser de fils. Merci quand même.
OriginalL'auteur sparkymat