2014-02-23 89 views
0

嗨在我的應用程序中,我添加了一個名爲「添加到收藏夾」的白色星形圖標顯示的菜單項。當用戶點擊它時,這個圖標變得消失,並且其他黃星出現...這工作正常..但問題是,當我切換到另一個活動或當我重新啓動我的應用程序時,我看到那個白色最喜歡的星形圖標和以前事件已經丟失。我怎樣才能保存這個狀態。我試過saveInstanceState但沒用。 這裏是我的代碼。不能保存以前的menuitem狀態

On PrepareOptionMenu (Menu menu){ 
If (favClicked){ 
menu.finditem (R.id.id_favorite).setvisible (false); 
menu.finditem (R.id.id_favorite 2). setvisible (true); 
} 
else if (! favClicked){ 
menu.finditem (R.id.id_favorite).setvisible (true); 
menu.finditem (R.id.id_favorite 2).setvisible (false); 
} 
return super . onPrepareOptionMenu (menu); 
} 
@Override 
protected void onRestoreInstanceState (Bundle saveInstanceState){ 
super.onRestoreInstanceState (saveInstanceState); 
favClicked=saveInstanceState. getBoolean ("favClicked") 
} 

,然後我使用本RESTOREINSTACESTATE方法同樣喜歡SAVEINSTANCE狀態...但它dosent工作對我來說。

回答

0

你需要存儲的地方(數據庫或你選擇的方法)你已經最喜歡的。

一旦創建了該過程,在onStart()和顯示另一個項目時,檢查當前項目是否被收藏並相應地設置您的menuItem。

我不認爲保存實例狀態在這種情況下有任何用處。

+0

那麼我該如何從數據庫保存開始......我使用dbadapter來存儲收藏夾列表......我如何在數據庫中存儲menuitem clicked事件? – user3340483

+0

您不必存儲菜單項,您必須查詢數據庫以查看主題是否在收藏夾列表中... – BrainCrash

+0

您可以向我提供代碼我應該在我的dbadapter中執行什麼操作?我希望當我改變我的可見性以隱藏一個菜單項並通過活動顯示其他項時,它仍然保留或保存可見性選項。但是,重新啓動應用程序或更改應用程序的方向後,可見性再次進入初始狀態,而不是保存爲我想要的。我想保存所有我想要的可見性選項。 – user3340483