2011-02-01 63 views
1

我是Java和Android開發人員的完整初學者,並且對首選項有疑問。使用getSharedPreferences獲取時間

教程要求我使用首選項來讀取並保存調用onCreate方法的時間。

我已經坐在這個問題上至少兩天,但沒有任何東西。任何人都可以給我一個關於如何編寫這樣一個動作的例子嗎?

public static final String PREFS_NAME = "Time_Pref"; 
public class QuizSplashActivity extends QuizActivity { 

@Override 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash); 
    SharedPreferences = getSharedPreferences ("Time_Pref", "MODE_PRIVATE); 
} 

但這就是我似乎迷失的地方。我甚至不知道我是否正朝着正確的方向前進。

+0

將其存儲在偏好將成爲主要問題。 – EstebanM 2011-02-01 23:00:01

回答

1

我建議你閱讀開發指南的有關SharedPreferences章的所有信息......。你可以找到它here

我建議你使用System.currentTimeMillis()來獲取保存的時間值。

Basic代碼保存東西的喜好應該是這樣的:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // view setup stuff here... 

    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putLong("onCreateCallTime", System.currentTimeMillis()); 
    editor.commit(); 
} 

然後使用android.text.format.Time類來格式化時間從首看完後:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
long timeMillis = settings.getLong("onCreateCallTime", 0); 
Time t = new Time(); 
t.set(timeMillis); 

閱讀時間documentation學習如何格式化/轉換時間與其方法:)

2

雖然我傾向於對您的問題Falmarri的評論同意,我將提供一些指引...

你應該做的onCreate(首先)是使用new GregorianCalendar()初始化創建的GregorianCalendar實例它到當前日期/時間。

接下來使用getSharedPreferences創建您的SharedPreferences,然後使用其edit()方法獲得編輯器。

存儲時間的最簡單方法是以毫秒爲單位,所以使用GregorianCalendar getTimeInMillis方法(從Calendar繼承)獲得Long結果。

最後,使用SharedPreferences編輯器的putLong()方法來存儲getTimeInMillis的結果,並使用編輯器的commit()方法使更改永久。

搜索這些頁面會給你你需要 Android Developers

+0

由於任何特定原因,GregorianCalendar優於Date嗎? – Andrew 2011-02-01 23:04:09