Как сохранить дату в Firebase, используя Kotlin - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь сохранить дату в Firebase, и мое приложение падает.Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю неправильно?

Вот моя модель

class Date (val id: String, val mDate: String)

Вот мой MainActivity.kt

class MainActivity : AppCompatActivity() {
    internal lateinit var dpDate: DatePicker

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        dpDate = findViewById(R.id.dpDate) as DatePicker
    }

    private fun saveDate(v: View) {
        val builder = StringBuilder()
        builder.append("Current Date: ")
        builder.append((dpDate.month + 1).toString() + "/")//month is 0 based
        builder.append(dpDate.dayOfMonth.toString() + "/")
        builder.append(dpDate.year)

        val ref = FirebaseDatabase.getInstance().getReference("dates")
        val dateID = ref.push().key
        val mDate = builder.toString()
        val date = Date(dateID!!, mDate)
        ref.child(dateID).setValue(date).addOnCompleteListener {
            Toast.makeText(this, builder.toString(), Toast.LENGTH_SHORT).show()
        }
    }
}

Вот мойmain_activity.xml

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:padding="5dp"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

    <DatePicker
            android:id="@+id/dpDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:datePickerMode="spinner"
            android:calendarViewShown="false"
    />

    <Button
            android:id="@+id/btnGet"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Save"
            android:onClick="saveDate"/>
</LinearLayout>

Вот что ошибка в logcat:

Процесс: com.simona.kotlin.datepicker, PID: 23537
java.lang.IllegalStateException: Не удалось найти метод saveDate (View) в контексте родителя или предка для android: атрибут onClick, определенный для класса представления android.support.v7.widget.AppCompatButton с идентификатором 'btnGet'
вandroid.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.resolveMethod (AppCompatViewInflater.java:424)
в android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onCack *istener.onCj20 * 2110) (10) AppCompat.

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