2011-10-18 82 views
0

在我的Android應用程序中,我使用ListView訪問顯示其他信息和功能的特定View。 一切正常,但當我啓動Phonecall函數或打開Weblink(這2個函數在特定視圖中可用),然後通過按兩次後退按鈕回到應用程序時,ListView爲空!Android ListView在啓動外部應用程序時清除

當我使用Google Maps等內部函數或特定視圖中的任何其他內部函數時,不會發生這種情況。

我想在適配器或光標有一些問題。 我只看到adapter.notifyDataSetChanged(),但我沒有更改任何數據。我只想讓它再次顯示。

這裏是訂單 - > ListView - >選擇一個單一的視圖 - >例如啓動一個PhoneCall - >通過後退按鈕返回單一視圖 - >通過Backbutton獲取ListView並且它是空的!


// public replacing function for ordering the views 
public void replaceView(View v) { 
    history.add(v); 
    setContentView(v); 
} 
// function that is called when the back button is pressed, controlling the views stack 
public void back() { 
    if (history.size() > 0) { 
     history.remove(history.size() - 1); 
     if (history.size() > 0) { 
      setContentView(history.get(history.size() - 1)); 
     } else { 
      finish(); 
     } 
    } else { 
     finish(); 
    } 
} 
// remove site from stack and go the last view (Overriding Back Button) 
@Override 
public void onBackPressed() { 
    FrontPage.group.back(); 
} 

這是後退按鈕是如何定義的。 onPause()onResume()不工作

回答

0

你必須保存在ListView和在onResume重建它。 這兩個方法必須在您的Activity類中覆蓋。

+0

啊好吧,阿迪爾謝謝你的郵件,我稍後會試一試 – user1001303

+0

這不會幫助我,因爲我沒有暫停ListView。 我從特定視圖啓動外部應用程序,而不是從ListView中刪除。 特定視圖中的所有數據都正確加載,但當我通過它返回到ListView時是空的。 這裏是訂單 - > ListView - >選擇一個單一的視圖 - >例如啓動一個PhoneCall - >通過後退返回到單一視圖 - >通過Backbutton獲取ListView並且它是空的! – user1001303

+0

如果您開始活動(例如您的電話呼叫),則活動設置爲背景,並且您的撥號活動位於前面。在這種情況下,您的Activity的onPause()方法將被調用,並且只要關閉撥號程序,就會調用onResume(),並且您的Activity會重新出現在屏幕上。 – Thommy

相關問題