Насколько я понимаю, у вас есть время в миллисекундах, и вы хотели бы преобразовать его во время (где 31415926535
равно 15:38) и установить это время в таймере.
Вы можетесделать все в вашей деятельности (в одном классе):
package training.com.myapplication
import android.app.TimePickerDialog
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val time = 31415926535 // It is: 15:38
setTimeListener(time)
}
private fun setTimeListener(time: Long) {
// Get instance of calendar
val calendar = Calendar.getInstance()
// Set time (from milliseconds)
calendar.timeInMillis = time
// Create dialog and set hours, minutes and 24 hours mode
val dialog = TimePickerDialog(
this,
getTimePickerListener(),
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
true
)
// After button click - open dialog
button.setOnClickListener {
dialog.show()
}
}
private fun getTimePickerListener() =
TimePickerDialog.OnTimeSetListener { _, hourOfDay, minute ->
// After selecting time - set text in TextView
textView.text = "%02d:%02d".format(hourOfDay, minute)
}
}
Вы также можете переместить часть кода в отдельный класс
package training.com.myapplication
import android.app.TimePickerDialog
import android.content.Context
import java.util.*
class MyOwnClass(
private val context: Context,
private val timePickerListener: TimePickerDialog.OnTimeSetListener
) {
fun showTimeDialog(time: Long) {
// Get instance of calendar
val calendar = Calendar.getInstance()
// Set time (from milliseconds)
calendar.timeInMillis = time
// Create dialog and set hours, minutes and 24 hours mode
TimePickerDialog(
context,
timePickerListener,
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
true
).show()
}
}
и вызвать в своей деятельности (передача context
), listener
и time
)
package training.com.myapplication
import android.app.TimePickerDialog
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val time = 31415926535 // It is: 15:38
val dialog = MyOwnClass(this, getTimePickerListener())
// After button click - open dialog
button.setOnClickListener {
dialog.showTimeDialog(time)
}
}
private fun getTimePickerListener() =
TimePickerDialog.OnTimeSetListener { _, hourOfDay, minute ->
// After selecting time - set text in TextView
textView.text = "%02d:%02d".format(hourOfDay, minute)
}
}