переменная инициализирована в Kotlin - PullRequest
0 голосов
/ 23 ноября 2018

в этом классе ниже есть две даты StartDate && EndDate. Я даю им значения в забавном check_date (), но в забавном DateIsChecked (), когда я пытаюсь напечатать два значения, которые печатают ноль. Почему?я пытаюсь использовать lateinit, но он не работает

companion object {
//Today Date
var today = Calendar.getInstance().time
//Date Format
val sdf = SimpleDateFormat("yyyy/MM/dd")

var calender = Calendar.getInstance()

//Dates Of Plan
var StartDate: java.util.Date? = null
var EndDate: java.util.Date? = null

//Int Value Fore Loop
var i = 0
}

//Check Plan Dates in Database
fun check_date(){
    var Ref = FirebaseDatabase.getInstance().reference
    Ref.keepSynced(true)//Enable Data Synced
    Ref.child("Plan").addListenerForSingleValueEvent(object : ValueEventListener {
        override fun onCancelled(p0: DatabaseError) {
            TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
        }//End onCancelled
        override fun onDataChange(p0: DataSnapshot){
            for (date in p0.children) {
                var item = date.getValue(Date::class.java)
                if (i == 0) {
                    i = 1
                    calender.time = sdf.parse(item!!.Date)
                    EndDate = calender.time
                } else {
                    i = 0
                    calender.time = sdf.parse(item!!.Date)
                    StartDate = calender.time
                }//End else
            }//End For
        }//End onDataChange
    })//End addValueEventListener
}//End

//Chick in Today Date In Date Range And Return The Result: Boolean
open fun DateIsChecked(): Boolean{
    check_date()
    Log.e("Date",today.toString())
    Log.e("Date", StartDate.toString())
    Log.e("Date", EndDate.toString())
    return true
 }

1 Ответ

0 голосов
/ 23 ноября 2018

в check_date метод, вы только что добавили слушателя для изменения на «План».поэтому метод onDataChange не вызывается, и ваши StartDate и EndDate не получат это значение до тех пор, пока не будут изменены данные плана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...