Я пытаюсь сохранить дату в 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.