kotlin как запускать параллельные таймеры
В общем программа для раздельного старта спортсменов. Есть EditText для количества участников, по нему создается адаптер для GridView по клетке на каждого. Нужно: при нажатии на клетке запускается секундомер интервал 100 мс, текущее время отображается в клетке в виде 00:00:0, при повторном - стоп. Отдельный секундомер для каждого. Класс клетки содержит порядковый номер участника, время int десятые доли секунды и флаг bool running. Как это организовать?
На js сделал за полчаса, а тут застрял, пока плохо знаю java/kotlin и в частности таймеры в них.
class gridItem {
var num: Int = 0
var millis:Int = 0
var running:Boolean=false
constructor(num:Int,millis:Int, running:Boolean){
this.num=num
this.millis=millis
this.running=running
}
}
//думаю остальные методы адаптера не важны
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val item=this.items[position]
val inflater = ctx!!.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val view = inflater.inflate(R.layout.cnter_item,null)
view.num.text=item.num.toString()
val millis=item.millis
val m= floor(millis/600.0).toInt()
val s= floor((millis.toFloat()-m*600)/10).toInt()
val mil=millis-(m*600+s*10)
var m_=""
var s_=""
if(m<10) m_= "0$m"
if(s<10) s_="0$s"
view.cnter.text="$m_:$s_:$mil"
view.setOnClickListener(View.OnClickListener {
Log.d("click",item.num.toString())
if(item.running==false){
item.running=true
// runTimer()
//как тут создать таймер?
}
else{
item.running=false
//stopTimer()
}
})
return view;
}
gridItem.xml
<TextView
android:id="@+id/num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:gravity="center"
android:layout_gravity="center"
android:textFontWeight="400"
android:textSize="24dp"
/>
<TextView
android:id="@+id/cnter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:layout_gravity="center"
android:gravity="center"
android:textSize="18dp"
android:text="00:00:0" />