lateinit属性movieAdapter尚未初始化Kotlin

问题描述 投票:0回答:1

如何解决该错误? lateinit属性movieAdapter尚未初始化。我不知道该如何启动

class SearchActivity : BaseAppCompatActivity() {

    private lateinit var movieViewModel: MovieViewModel
    private lateinit var movieAdapter: MovieAdapter
    private lateinit var tvShowAdapter: TvShowAdapter
    private lateinit var query: String

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_search)

        query = intent.getStringExtra(EXTRA_QUERY)!!
        movieViewModel = ViewModelProviders.of(this).get(MovieViewModel::class.java)
        movieViewModel.movies.observe(this, getMovie)
        val adapter = ArrayAdapter<String>(
            applicationContext, android.R.layout.simple_spinner_dropdown_item,
            resources.getStringArray(R.array.filter_search)
        )
        spinner_search_activity.adapter = adapter
        spinner_search_activity.onItemSelectedListener =
            object : AdapterView.OnItemSelectedListener {
                override fun onNothingSelected(parent: AdapterView<*>?) {

                }

                override fun onItemSelected(
                    parent: AdapterView<*>?,
                    view: View?,
                    position: Int,
                    id: Long
                ) {
                    pb_search_activity.visibility = View.VISIBLE
                    tv_null_search_activity.visibility = View.GONE
                    if (spinner_search_activity.selectedItemPosition == 0) {
                        searchMovie()
                    } else if (spinner_search_activity.selectedItemPosition == 1) {
                        searchTvShow()
                    }
                }

            }


}
kotlin adapter
1个回答
0
投票

movieAdapter = MovieAdapter(/*pass the required data to construct this*/)

在哪里发起? ,这取决于构造函数所需的项目。

© www.soinside.com 2019 - 2024. All rights reserved.