2016-04-28 5 views
-1

Mein Problem ist der Fortschritt Dialog wird nicht mit dem Splash-Bildschirm angezeigt? Kann jemand dies lösen, Jede Hilfe konnte dank im Voraus geschätzt werden!Probleme im Begrüßungsbildschirm mit progressDialog

public class Splash extends Activity 
{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash_layout); 

    Thread thread = new Thread(){ 
     @Override 
     public void run() { 
      try 
      { 
       sleep(3*1000); 
       ProgressDialog progressDialog = new ProgressDialog(Splash.this); 
       progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
       progressDialog.setMessage("wait"); 
       progressDialog.setCancelable(false); 
       progressDialog.show(); 
      }catch (Exception e) 
      { 
        e.printStackTrace(); 
      }finally { 
       Intent i = new Intent(Splash.this,MainActivity.class); 
       startActivity(i); 
       finish(); 
      } 
     } 
    };thread.start(); 

} 

}

Antwort

1
public class Splash extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash_layout); 

ProgressDialog progressDialog = new ProgressDialog(Splash.this); 
       progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
       progressDialog.setMessage("wait"); 
       progressDialog.setCancelable(false); 
       progressDialog.show(); 

    Thread thread = new Thread(){ 
     @Override 
     public void run() { 
      try 
      { 
       sleep(3*1000); 

      }catch (Exception e) 
      { 
        e.printStackTrace(); 
      }finally { 
progressDialog.dismiss(); 
       Intent i = new Intent(Splash.this,MainActivity.class); 
       startActivity(i); 
       finish(); 
      } 
     } 
    };thread.start(); 

} 

} 
+0

Eigentlich möchte ich Spinner Dreh Stil dort mit diesem Spinner nur Spinner erschien dann keine dilaog Boxen ist wie @Nirav – AnilkumarJohn

+0

Verwenden preogressbar Bibliothek –

0

Cuz Sie die Benutzeroberfläche in Hintergrund-Thread aktualisieren .. versuchen, die

runOnUiThread(new Runnable.......)

oder versuchen, zu verwenden, um die UI-Arbeit auf UI-Thread zu setzen .

0

Alles, was Sie innerhalb eines Threads schreiben, wird im Hintergrund ausgeführt. Sie können keine UI-Elemente aus einem Hintergrund Thread manipulieren. Sie sollten einen Fehler von diesem Code erhalten, überprüfen Sie Ihren StackTrace. Ich schlage vor, Sie entfernen den Code für den ProgressDialog aus dem Thread und legen ihn vor den Thread.

0

Sie sollten den Fortschrittsdialog über den UI-Thread anzeigen. Oder Sie können die runOnUiThread (...) Methode verwenden. Wenn Sie es aus einem anderen Thread zu zeigen haben, schreiben dünn innerhalb run-Methode des Gewindes:

Handler mainHandler = new Handler(Looper.getMainLooper()); 
mainHandler.post(new Runnable() { 
    @Override 
    public void run() { 
     //add try catch 
     sleep(3*1000); 
     ProgressDialog progressDialog = new ProgressDialog(Splash.this); 
     progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
     progressDialog.setMessage("wait"); 
     progressDialog.setCancelable(false); 
     progressDialog.show(); 
    } 
}); 

würde ich vorschlagen Handler statt Schlaf in Ihrer Tätigkeit verwenden. Sie können dies auch versuchen, ohne den Faden in Ihrem Code:

Handler h = new Handler(Looper.getMainLooper()) 
h.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       ProgressDialog progressDialog = new ProgressDialog(Splash.this); 
       progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
       progressDialog.setMessage("wait"); 
       progressDialog.setCancelable(false); 
       progressDialog.show(); 
      } 
     }, 
     (3*1000)); 
+0

es zeigt es kontinuierlich progressdialog tut Geht zu Mainactivity wenn ich den Handler @drulabs benutze – AnilkumarJohn

+0

Du musst startActivity code und dialog.dismiss() wo immer du willst in deiner App hinzufügen. – drulabs

+0

Wie Sie im Handler-Beispiel sehen können, gibt es nur show() für den Fortschrittsdialog, es gibt keine Kündigung. Sie müssen Entlassung gemäß Ihrer Anforderung einschließen. – drulabs