Android 台灣中文網

標題: 如何使用progressdialog進度框,應用在intent [打印本頁]

作者: jianmintai    時間: 2011-11-24 17:17
標題: 如何使用progressdialog進度框,應用在intent
因使用的是類似連線網頁的應用,利用wifi連線非常快完全感覺不出延遲,但使用3g連線時,轉換class時會停留在原畫面數秒,想說設計個進度框,待連線完成,小弟在此感謝先知們

       Button b1 = (Button) findViewById(R.id.Web_bt0);
        b1.setOnClickListener(new Button.OnClickListener()
        
        {
        
          public void onClick(View v)
         
          {
           /* new一個Intent物件,並指定要啟動的class */
            Intent intent = new Intent();
               
            intent.setClass(textWeb.this, Main.class);
                  
                  /* 呼叫一個新的Activity */
           
            startActivity(intent);
          }
        });
作者: lkk47    時間: 2011-11-24 18:16
因使用的是類似連線網頁的應用  這個適用瀏覽器開啟的嗎?還是你自己做的?
progressdialog要實作thread 然後會產生run方法 progressdialog跑在run裡面的
如果是用瀏覽器開啟不需要自己設計progressdialog
作者: jianmintai    時間: 2011-11-24 18:28
感謝您的回應^^,如沒更好的解決方案,就只能用SLEEP來模擬囉
作者: ploglin    時間: 2011-11-27 12:12
不需要使用 sleep 來模擬。
如果複雜的處理沒辦法馬上意會的話,你可以在開啟Activity的時候,把存取網路的動作利用Thread放在run()中去執行,在進入 thread 之前,先丟出一個 progressdialog,用 loading 的方式即可。

等 run() 裡面的處理結束後,將資料丟到 handler 裡面,呈現你要的畫面後,再把 progressdialog 做 close 的動作就可以了。

這樣的話,在 run() 中不論執行多久,都不會影響顯示,只要一結束就會輸出,當然也要記得處理連線失敗的錯誤。
作者: sunny78    時間: 2012-1-4 06:53
jianmintai 發表於 2011-11-24 18:28
感謝您的回應^^,如沒更好的解決方案,就只能用SLEEP來模擬囉

恩恩
我也是用類似版主的方式來呈現,
做一各 RUN
按下按鈕時設為1
就會去呼叫 RUNTABLE 呈現 轉轉轉
耗時的程式跑完變為 0
呼叫 RUNTABLE 關閉 轉轉轉。

就這樣




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1