我是一名有用的助手,可以为您翻译文本。
我在使用 Kotlin 和 Android 显示 DialogFragment 时遇到了问题。这是我目前的代码:
我在使用 Kotlin 和 Android 显示 DialogFragment 时遇到了问题。这是我目前的代码:
TimePickerFragment.kt
package de.flokol120.UniversalSleepTimer
import android.app.Dialog
import android.app.DialogFragment
import android.widget.TimePicker
import android.app.TimePickerDialog
import android.os.Bundle
import android.text.format.DateFormat
import java.util.*
/**
* @author flokol120
* TimePicker Fragment to get the time
*/
class TimePickerFragment : DialogFragment(), TimePickerDialog.OnTimeSetListener {
override fun onCreateDialog(savedInstanceState: Bundle): Dialog {
val c = Calendar.getInstance()
val hour = c.get(Calendar.HOUR_OF_DAY)
val minute = c.get(Calendar.MINUTE)
return TimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()))
}
override fun onTimeSet(view: TimePicker, hourOfDay: Int, minute: Int) {
//TODO add this
}
}
还有 AddTimer.kt
package de.flokol120.UniversalSleepTimer
import android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
/**
* @author flokol120
* the fragment which adds a simple kill Timer
*/
class AddTimer : Fragment() {
lateinit var timePicker : Button
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val v = inflater!!.inflate(R.layout.fragment_add_timer, container, false)
timePicker = v.findViewById(R.id.timePicker)
timePicker.setOnClickListener {
val newFragment = TimePickerFragment()
newFragment.show(fragmentManager, "timePicker")
}
return v
}
}
我还尝试用 this@AddTimer.fragmentManager
替换了 fragmentManager
,但这似乎不是解决方案。
现在我感到非常困惑,因为Android Studio说我必须使用 FragmentManager!
作为第一个参数,但我已经在使用一个了,对吧?