2014-11-05 46 views
0

我想要實現的是勾選複選框,當離開活動並返回勾號應該仍然存在。不過,現在我打勾了,當去一個不同的活動,並返回打勾消失了。如何將複選框保存在複選框中?我怎樣才能保存勾選的複選框

這裏是我的代碼:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_tick, container, false); 

    CheckBox checkBox = (CheckBox) rootView.findViewById(R.id.checkBox62); 
      if(checkBox.isChecked()) 
      checkBox.setChecked(false); 
      else 
      checkBox.setChecked(false); 

      return rootView; 
    } 
} 

任何幫助將不勝感激。

+0

Strore在sharedpreferences複選框值。當進入這個屏幕首先檢查商店價值。 – 2014-11-05 13:49:04

+0

你能告訴我如何實現這個? – wemapps 2014-11-05 14:16:19

+0

閱讀本文http://stackoverflow.com/questions/23024831/android-shared-preferences-example http://stackoverflow.com/questions/14292984/using-shared-preference-save-5-check-box-value- IN-A-的ArrayList – 2014-11-05 14:40:42

回答

0

您需要持久數據存儲來維護狀態。

在您發佈的代碼中,複選框的值僅在視圖處於活動狀態時存儲,因此當您離開活動時將丟失該數據。

您可以: 添加一個變量在應用程序類 添加偏好 或任何miriad其他的解決方案在那裏

主要的想法是,你有數據和視圖之間進行區分。視圖只存儲每個實例的數據,您需要一個後端來維護它。

0

Android組件的狀態由Android OS在名爲savedInstanceStateonCreateView()方法的參數)的Bundle中自動保存。但是,您可以將自定義數據添加到此Bundle以覆蓋onSaveInstanceState()方法。

此外,您的代碼是錯誤的:您將Checkbox設置爲取消選中狀態。完成這部分代碼是無用的,因爲它已經由Android管理。嘗試徹底刪除它或修復它,如果你真的想保留它。

if(checkBox.isChecked()) 
    checkBox.setChecked(false); // Should be true to be algorithmically correct 
else 
    checkBox.setChecked(false); 

來源

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

相關問題