Android Studio kotlinのメソッドパーツ化
今回はRunnableです
Runnableは定期的に指定の処理をするタイマーです
var runnable = Runnable { } val handler = Handler() runnable = Runnable { Handler().postDelayed( { /*処理*/ }, 3000 ) //3000ミリ秒(3秒)後にタイマー開始 handler.postDelayed(runnable,1000) //1000ミリ秒(1秒)ごとに処理をする } handler.post(runnable)
タイマー処理を中止するときは
handler.removeCallbacks(runnable)
使用例はこちら(xmlファイルは省略します)
import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Handler import android.widget.Button import android.widget.TextView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val btStart:Button = findViewById(R.id.btstart) val btStop:Button = findViewById(R.id.btstop) val tv:TextView = findViewById(R.id.tv) var runnable = Runnable { } val handler = Handler() btStart.setOnClickListener { runnable = Runnable { Handler().postDelayed( { tv.setBackgroundColor(Color.rgb((0..255).random(),(0..255).random(),(0..255).random())) //処理 }, 0 ) //0秒後にタイマー開始 handler.postDelayed(runnable,2000) //2秒ごとに処理を実行 } handler.post(runnable) } btStop.setOnClickListener { handler.removeCallbacks(runnable) } } }
スタートボタンを押すとテキストのバックの色が2秒ごとに変わります
ストップボタンを押すと色を変える処理を中止します