2012-08-27 65 views
1

我正在構建一個新聞應用程序,並且我不想在ListView中直接顯示主要活動,同時它還在加載,爲此我創建了一個splash活動。但現在我無法弄清楚如何檢查何時加載完成,但後來我有一個想法,我可以以某種方式檢查從splash活動是主要活動的ListView是空的還是不是?Android listview empty

public class Init extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.init); 

     WebView loader = (WebView) findViewById(R.id.loader); 
     loader.loadUrl("file:///android_asset/index.html"); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
} 

回答

1

使用一個async task

創建一個啓動畫面,它調用異步任務。異步任務應該下載新聞項目。當onPostExecute被調用時,轉移到主視圖和填充列表框...

我想這有一個顯示進度的優點(onProgressUpdate和publishProgress) - 即如果你看着多個數據源,並且有一個onPostExecute方法這就決定了下載完成後...

您也可以取消異步任務...

認爲,滿足您的需求...

+0

iam stock with that for week,and tryed all possible possible,除了你告訴我的,thnak你:) –

+0

這是否回答你的問題...?擴大我在說什麼... 初始屏幕擁有AsyncTask,也許顯示不確定的進展..? - > AsyncTask在顯示啓動畫面時在後臺下載新聞數據 - >將下載的數據保存到數據庫,也許? - > AsyncTask更新onProgressUpdate,publishProgress啓動畫面(可能已經下載了n項中的1項) - >完成執行onPostExecute時,AsyncTask調用onPostExecute應切換到主視圖。主視圖從數據庫加載新的數據,這應該是非常快,因爲所有的數據現在是本地... – 0909EM

+0

你沒有回答我的問題是:)寫入數據在數據庫中,然後加載它唷幾秒後沒用,我可以insted onPostExecute ()這樣做:創建一個主類的對象,如MainClass mainclass = new MainClass();然後將onPostExecute()的結果傳遞給mainclass中的方法,如mainclass.parseXML(result); –

0

你也期待當頁面已經完成了下載?如果是這樣,創建一個WebViewClient子類,將其附加到您的WebView,並處理覆蓋onPageFinished()。

+0

是的,這也將幫助我,thnak你;) –