La mia applicazione recupera un codice html da Internet e, una volta terminato, lo visualizza sullo schermo dei dispositivi. Poiché ci vogliono circa 3-4 secondi per farlo, in questo momento lo schermo rimane nero, mi piacerebbe usare una finestra di dialogo di avanzamento. Questo è il mio codice:Finestra di dialogo di avanzamento di Android
package com.nextlogic.golfnews;
// ALL THE IMPORTS ....
public class Activity1 extends Activity {
private ProgressDialog progressDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
progressDialog = ProgressDialog.show(Activity1.this, "", "Loading...");
new Thread()
{
public void run()
{
try
{
sleep(2000);
// HERE I'VE PUT ALL THE FUNCTIONS THAT WORK FOR ME
}
catch (Exception e)
{
Log.e("tag",e.getMessage());
}
// dismiss the progressdialog
progressDialog.dismiss();
}
}.start();
Il programma funziona ma non visualizza più nulla. Ho un errore in logcat:
Only the original thread that created a view hierarchy can touch its views.
Potrebbe aiutarmi per favore? Grazie in anticipo.
Le date risposte sono corrette, ma mi piacerebbe aggiungere qualcosa. ProgressDialogs ha 2 stili: STYLE_SPINNER (predefinito) e STYLE_HORIZONTAL. Secondo [i dialoghi ui] (http://developer.android.com/guide/topics/ui/dialogs.html) dovremmo seguire le [linee guida di progettazione per Progress & Activity] (http://developer.android.com /design/building-blocks/progress.html) e utilizzare uno STYLE_HORIZONTAL (se pertinente e possibile). A tale proposito ho trovato [questo tutorial] (http://www.pavanh.com/2013/04/android-progress-dialog-example.html) molto utile. Ora hai la possibilità di scegliere quale stile di ProgressDialog vuoi ... –