我创建了一个RecyclerView
,但是当我尝试向视图分配layoutManager
时,得到了无处不在的“期望成员声明”。我正在使用androidx
。
此错误似乎还有许多其他问题,但是我无法根据自己的问题来调整解决方案。
我没有高兴地尝试过Build -> Clean
方法。
我尝试为lateinit
申请recyclerview
import android.content.Context
//import android.support.v7.app.AppCompatActivity;
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.room.Room
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private val DB_NAME = "Flt_Log.db"
//lateinit var recyclerView: RecyclerView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
var recyclerView = findViewById<RecyclerView>(R.id.rv_flightlist)
recyclerView.layoutManager = LinearLayoutManager(this)
...
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_flightlist"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
//tools:layout_editor_absoluteX="145dp"
//tools:layout_editor_absoluteY="494dp"
</android.support.constraint.ConstraintLayout>
存在错误:recyclerView.layoutManager = LinearLayoutManager(this)
答案 0 :(得分:1)
您的代码中有两个错误
您需要在findViewById
方法内进行 onCreate()
在recyclerView.layoutManager = LinearLayoutManager(this)
方法内使用onCreate()
也无需执行findViewById
,您可以使用Kotlin Android Extensions
尝试一下
class MainActivity : AppCompatActivity() {
private val DB_NAME = "Flt_Log.db"
//lateinit var recyclerView: RecyclerView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var recyclerView = findViewById<RecyclerView>(R.id.rv_flightlist)
recyclerView.layoutManager = LinearLayoutManager(this)
}
}
答案 1 :(得分:1)
转换
val recyclerView = findViewById<RecyclerView>(R.id.rv_flightlist)
到
val recyclerView : RecylerView = findViewById<RecyclerView>(R.id.rv_flightlist)
您还可以使用Kotlin Android Extensions并直接访问回收站视图,因为所有繁重的工作都已为您完成。
rv_flightlist.layoutmanager = LinearLayoutManager(this)