Android 利用sharepreference保存应用程序状态
生活随笔
收集整理的這篇文章主要介紹了
Android 利用sharepreference保存应用程序状态
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在開發(fā)Android應(yīng)用過程中,都會(huì)需要保存應(yīng)用程序的狀態(tài),比如音樂播放器利用sharepreference保存用戶的設(shè)置,音樂的播放狀態(tài),音樂的播放進(jìn)度等。就在現(xiàn)在的項(xiàng)目上需要對(duì)主界面上按鈕進(jìn)行控制,要求是:當(dāng)按鈕按下后在一天之內(nèi)還可以點(diǎn)擊進(jìn)入,但是過了一天之后就禁用改按鈕,然后在4周之后對(duì)按鈕重新可以使用。
在這個(gè)測(cè)試程序中就不那么麻煩了,驗(yàn)證一下功能就ok,所以選擇的是2分鐘之后禁用,然后10分鐘之后重新可用。
布局文件就是一個(gè)按鈕,不解釋。
這里主要是根據(jù)時(shí)間點(diǎn)來進(jìn)行判斷,所以要獲取當(dāng)前時(shí)間:
//獲取當(dāng)前日期public String Currentdate(){Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int day = c.get(Calendar.DAY_OF_MONTH);int hour = c.get(Calendar.HOUR_OF_DAY);int munite = c.get(Calendar.MINUTE);String date = year + "," + month + "," + day + "," + hour + "," + munite;//text.setText("記錄日期:" + date);System.out.println(date);return date;} 然后是獲得一個(gè)SharedPreferences,里面保存兩個(gè)數(shù)據(jù),一個(gè)是時(shí)間,一個(gè)是按鈕的點(diǎn)擊次數(shù)count,重點(diǎn)說一下這個(gè)count,第一次點(diǎn)擊這個(gè)按鈕的時(shí)候才回保存時(shí)間數(shù)據(jù),要不然在功能實(shí)現(xiàn)上就有瑕疵,在著兩分鐘之內(nèi)一直點(diǎn)擊按鈕的話就一直保存當(dāng)前時(shí)間,就會(huì)導(dǎo)致一個(gè)問題,如果用戶在還沒到2分鐘的時(shí)候又保存了一次時(shí)間數(shù)據(jù)。。。那后面就完了。。。
保存時(shí)間和點(diǎn)擊次數(shù)的代碼實(shí)現(xiàn)
@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button01://獲取次數(shù)int count = pref.getInt("count", 0);Editor editor = pref.edit();//獲取當(dāng)前日期String date = Currentdate();//保存第一次的時(shí)間數(shù)據(jù)if (count == 0) {//保存當(dāng)前日期editor.putString("date", date);Toast.makeText(this, "當(dāng)前時(shí)間保存成功", Toast.LENGTH_SHORT).show();}editor.putInt("count", ++count);editor.commit();break;default:break;}}
保存好了數(shù)據(jù)之后就是實(shí)現(xiàn)對(duì)按鈕的控制了,代碼下面
pref = getSharedPreferences("data", MODE_PRIVATE);//第一次打開,保存一個(gè)初始密碼 // SharedPreferences.Editor editor = getSharedPreferences("password", MODE_PRIVATE).edit();String currentDate = pref.getString("date", "");if (!currentDate.equals("")) {String[] preftime = currentDate.split(",");for (int i = 0; i < preftime.length; i++) {System.out.println("數(shù)組---" + preftime[i]);}System.out.println("currentDate---" + currentDate);System.out.println("數(shù)據(jù)長(zhǎng)度------" + preftime.length);String systemdate = Currentdate();String [] time = systemdate.split(",");for (int i = 0; i < time.length; i++) {System.out.println("數(shù)組---" + time[i]);}//兩分鐘之后禁用Button01if (Integer.parseInt(time[4]) > (Integer.parseInt(preftime[4]) + 2)) {button01.setEnabled(false);System.out.println("不可用");}if (Integer.parseInt(time[4]) > (Integer.parseInt(preftime[4]) + 10)) {button01.setEnabled(true);System.out.println("重新可用");}}
經(jīng)過測(cè)試,功能實(shí)現(xiàn)~~
demo下載地址:SharePreferences保存用用程序狀態(tài)
總結(jié)
以上是生活随笔為你收集整理的Android 利用sharepreference保存应用程序状态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android SharedPrefer
- 下一篇: Android 使用Listview