У меня проблемы с функцией показа списка переменных, добавленных через вставку. Ошибка, которая постоянно отображается в моем logcat, следующая: адаптер не подключен; пропуск макета: RecyclerView.
Вот код моего адаптера.
package com.example.conexionbd
import android.app.Activity
import android.content.Intent
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.conexionbd.data.Cultivo
import kotlinx.android.synthetic.main.list_item_cultivo.view.*
import java.lang.reflect.Type
import java.text.FieldPosition
class CultivosAdapter(val cultivos: List<Cultivo>, val activity: Activity): RecyclerView.Adapter<CultivosAdapter.CultivoViewHolder>() {
class CultivoViewHolder(itemView : View): RecyclerView.ViewHolder(itemView){
fun bindCultivo(cultivo: Cultivo, activity: Activity){
itemView.setOnClickListener {
val intent = Intent(itemView.context, InsertEditActivity::class.java)
intent.putExtra(Constants.ID, cultivo.id)
intent.putExtra(Constants.NOMBRE, cultivo.name)
intent.putExtra(Constants.PLAGA, cultivo.plaga)
intent.putExtra(Constants.NUEVO_CULTIVO, Constants.NO)
itemView.context.startActivity(intent)
activity.finish()
}
itemView.litNombre.text = cultivo.name
itemView.litPlaga.text = cultivo.plaga
}
}
override fun onCreateViewHolder (parent: ViewGroup, viewType: Int): CultivoViewHolder {
var layoutInflate = LayoutInflater.from(parent.context)
.inflate(R.layout.list_item_cultivo, parent, false)
return CultivoViewHolder(layoutInflate)
}
override fun getItemCount(): Int {
return cultivos.size
}
override fun onBindViewHolder(holder: CultivoViewHolder, position: Int) {
val cultivo = cultivos[position]
holder.bindCultivo(cultivo, activity)
}
}
И код действия, где RecyclerView называется
import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
import com.example.conexionbd.data.Cultivo
import com.example.conexionbd.data.CultivoDB
import kotlinx.android.synthetic.main.activity_cultivos.*
class CultivosActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_cultivos)
var cultivos: List<Cultivo> = CultivoDB.getDatabase(applicationContext).cultivoDAO().getAllCultivos()
taRv.layoutManager = LinearLayoutManager(this)
taRv.adapter = CultivosAdapter(cultivos, this)
}
}
I «Я искал, и я не решил свою проблему.
Редактировать
Это моя трассировка стека? Я начинающий в Android Studio.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.conexionbd, PID: 19984
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.conexionbd/com.example.conexionbd.CultivosActivity}: java.lang.RuntimeException: cannot find implementation for com.example.conexionbd.data.CultivoDB. CultivoDB_Impl does not exist
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3122)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3261)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1977)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6923)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)
Caused by: java.lang.RuntimeException: cannot find implementation for com.example.conexionbd.data.CultivoDB. CultivoDB_Impl does not exist
at android.arch.persistence.room.Room.getGeneratedImplementation(Room.java:93)
at android.arch.persistence.room.RoomDatabase$Builder.build(RoomDatabase.java:630)
at com.example.conexionbd.data.CultivoDB$Companion$database$2.invoke(CultivoDB.kt:18)
at com.example.conexionbd.data.CultivoDB$Companion$database$2.invoke(CultivoDB.kt:13)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at com.example.conexionbd.data.CultivoDB$Companion.getDatabase(Unknown Source:6)
at com.example.conexionbd.data.CultivoDB$Companion.getDatabase(CultivoDB.kt:22)
at com.example.conexionbd.CultivosActivity.onCreate(CultivosActivity.kt:16)
at android.app.Activity.performCreate(Activity.java:7148)
at android.app.Activity.performCreate(Activity.java:7139)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1293)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3102)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3261)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1977)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6923)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)