2017-08-14 134 views
-1

所以目前用戶將選擇顏色,形狀和時間。當應用第一次啓動時,每個應用都有一個默認值。我想要發生的事情是,即使在後臺運行應用程序後關閉應用程序,也要讓用戶選擇所有這3種應用程序。如何保持用戶選擇,即使他們關閉應用程序後? Android

如果你需要我張貼任何幫助請走。謝謝。

寫出了什麼問題後,並不是說他們沒有被保存它是一個事實,即選擇被保存,但不能正確顯示。 I.E通過邊框或下拉菜單返回到默認值而不是用戶選擇。

所以值被保存(我的壞),但應用程序覆蓋這些保存和不使用邊界或人類的下拉菜單返回到它的默認值。

circularImageView = (CircularImageView)findViewById(R.id.activity_main_silver_color_button); 
    circularImageView.setBorderColor(getResources().getColor(R.color.unselected_border)); 

circularImageView = (CircularImageView)findViewById(v.getId()); 
    circularImageView.setBorderColor(getResources().getColor(R.color.selected_border)); 

這些工作相互獨立,但被選擇的邊界時,如果選擇了另一種顏色則變得未選擇的邊界的。但是如果「selected_border」狀態永遠不會被保存,會發生什麼。

public static void saveLockScreenDuration(Context context, int duration){ 
    getStoredPreferences(context).edit().putInt(SELECTED_DURATION, duration).apply(); 

public static int getLockScreenDuration(Context context){ 
    return getStoredPreferences(context) 
      .getInt(SELECTED_DURATION, DEFAULT_DURATION); 
} 

這是存儲所有預置的地方。 DEFAULT_DURATION和SELECTED_DURATION在一個名爲常量的類中。

+0

因此,基本上每次更新時都要保存用戶的選擇? –

+0

嘗試將用戶的選擇保存在SharedPreference中。那麼在創建視圖時,加載已保存的SharedPreference。參考這個答案https://stackoverflow.com/a/3624358/908821 –

+0

是的,這基本上是我在找什麼 –

回答

0

在選擇時,你可以在共​​享偏好存儲中選擇的值。再次啓動時,您可以檢查這些值是否爲空。並據此顯示。閱讀如何使用共享首選項here

+0

它確實保存了值,但一旦應用程序進入後臺,它們不會保存,我不知道爲什麼, –

+0

如果錯誤,糾正我,一旦應用程序進入後臺,用戶將如何更改其顏色首選項。因爲它不會被用戶看到。那麼當應用程序在後臺時你想要保存什麼? –

+0

寫完問題後,並不是說他們沒有被保存,而是選擇被保存但沒有正確顯示。 I.E通過邊框或下拉菜單返回到默認值而不是用戶選擇。 –

0

糾正我,如果我錯了。我想你可以使用PreferenceManager.getDefaultSharedPreferences(Context context)

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
這是您所有的活動和服務類所共享

。如果你設置一個無障礙服務來獲取應用程序在後臺的事件,並使用defaultsharedprefrences來存儲,我認爲它適用於你的情況。

+0

謝謝,但是我在說什麼的時候都犯了一個錯誤,它們都能很好地保存,但是如果這樣做有意義的話,那麼所選值的邊界就不是這樣了。 –

相關問題