前提・実現したいこと
はじめてのandroidプログラミング第3版という本で、目覚まし時計のサンプルアプリを作っていたのですが、エラーが出て詰まってしまいました。エラーの箇所はoverride fun onCreateDialogのreturn DatePickerDialog(context,this,year,month,date)のcontextの部分です。
また、こちらで質問させていただくのは初めてなのですが、エラー箇所の書き方として適切な記述方法があれば教えて下さい。
よろしくお願い致します。
発生している問題・エラーメッセージ
Type mismatch. Required: Context Found: Context?
該当のソースコード
kotlin
class DatePickerFragment:DialogFragment(), DatePickerDialog.OnDateSetListener{
interface OnDateSelectedListener{ fun onSelected(year:Int, month:Int, date:Int) } private lateinit var listener:OnDateSelectedListener override fun onAttach(context: Context) { super.onAttach(context) if(context is OnDateSelectedListener){ listener=context } } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val c=Calendar.getInstance() val year=c.get(Calendar.YEAR) val month=c.get(Calendar.MONTH) val date=c.get(Calendar.DAY_OF_MONTH) return DatePickerDialog(context,this ,year,month,date) } override fun onDateSet(view: DatePicker?, year: Int, month: Int, date: Int) { listener.onSelected(year,month,date) }
}

回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2020/06/23 14:15
2020/06/27 05:54 編集