アプリが終了しても値を残す

Android開発に関するメモランダム

カテゴリー: 睡眠導入  閲覧数:348 配信日:2018-05-18 11:28


値を保存する


SharedPreferences クラスを使用する

コード


▼MainActivity.kt

package work.w4c.android0.introducesleep20180426

import android.content.SharedPreferences
import android.media.MediaPlayer
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.preference.PreferenceManager
import android.util.Log
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*

class MainActivity : AppCompatActivity() {
   var sheepCount = 0
   var mp: MediaPlayer? = null

   override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_main)
       var greeting = "こんにちは"


       val trialTime = Date()
       val calendar = GregorianCalendar()
       calendar.time = trialTime

       val hour = calendar.get(Calendar.HOUR_OF_DAY)
       if (hour in 1..11) {
           greeting = "おはよう"
       } else if (15 < hour) {
           greeting = "こんばんは"
       }

       //greeting += "。。。ひつじが1匹。。。ひつじが2匹。。。ひつじが3匹。。。"

       //val sheepNum = 10
       //for (i in 1..sheepNum) {
       //    greeting += "。。。ひつじが" + i + "匹"
       //}

       greeting += "ねむれませんか?"

       textview.text = greeting
       //findViewById<TextView>(R.id.textview).text = greeting

       mp = MediaPlayer.create(applicationContext, R.raw.sheep_cry1)


       rootLayout.setOnClickListener {
           sheepCount++
           val sheepText = "ひつじが$sheepCount 匹"
           textview.text = sheepText

           when(sheepCount % 2) {
               0 -> {
                   imageView1.setImageResource(R.drawable.sheep_1)
                   mp?.start()
               }
               else -> imageView1.setImageResource(R.drawable.sheep_2)
           }


       }



   }

   override fun onPause() {
       super.onPause()
       Log.i("onPause", "眠るまでの回数=$sheepCount")

       //値を保存する
       val sp: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) //追加
       sp.edit().putInt("SheepCount", sheepCount).apply()                              //追加
    }

   //保存した値を読み出す
   override fun onResume() {
       super.onResume()
       val sp: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) //追加
       val count = sp.getInt("SheepCount", -1)                                         //追加
       if (count >= 0) {                                                               //追加
           textview.text = "前回は$count 回羊を数えました。"                                 //追加
       }                                                                               //追加
   }

}



初めてのAndroidアプリ開発(Kotlin編)

週間人気ページランキング / 9-15 → 9-21
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2024/9/22 1:02 更新
指定期間人気ページランキング / 1970-1-1 → 2024-9-21
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2024/9/22 1:02 更新