gpt4 book ai didi

kotlin - 错误(公共(public)构造函数适配器状态(listState List,stateData>)没有伴随对象和太多参数

转载 作者:行者123 更新时间:2023-12-02 13:42:55 27 4
gpt4 key购买 nike

我是编程新手。我对上面的过滤器错误有疑问。
我收到如下所示的错误。我已经尝试了几个星期,但仍然不知道如何解决它。

Too many arguments for public constructor adapterState(listState: List) defined in com.e.shoppingmallfooddrink.adapterState


请帮我。
非常感谢你。
主要事件
package com.e.shoppingmallfooddrink

import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.widget.EditText
import android.widget.SimpleAdapter
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView

class MainActivity : AppCompatActivity() {
private lateinit var recyclerView: RecyclerView
private lateinit var viewAdapter: RecyclerView.Adapter<*>
private lateinit var viewManager: RecyclerView.LayoutManager
private lateinit var stateSearch: EditText

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
stateSearch = findViewById(R.id.stateSearch)
viewManager = GridLayoutManager(this, 2)
viewAdapter = adapterState(stateFlag.listState)
recyclerView = findViewById<RecyclerView>(R.id.recycleViewState).apply {
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
setHasFixedSize(true)
// use a linear layout manager
layoutManager= viewManager
// specify an viewAdapter (see also next example)
adapter = viewAdapter
}
addTextListener()
}

private fun addTextListener() {
stateSearch.addTextChangedListener( object: TextWatcher{
override fun afterTextChanged(s: Editable?) {
TODO("Not yet implemented")
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
TODO("Not yet implemented")
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
var s=s.toString().toLowerCase()
data class filteredList (var name: String, var photo: String)
for (i in 0 until stateFlag.listState.size) {
val text: String = stateFlag.listState[i].name
if (text.contains(s)) {
filteredList(stateFlag.listState[i].name,stateFlag.listState[i].photo)
}
}
recyclerView.setLayoutManager(LinearLayoutManager(this@MainActivity))
viewAdapter = adapterState(filteredList, this@MainActivity)
recyclerView.setAdapter(viewAdapter)
viewAdapter.notifyDataSetChanged() // data set changed
}
}
)
}
}
适配器
package com.e.shoppingmallfooddrink

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.grid_view_state.view.*

class adapterState (val listState:List<stateData>):
RecyclerView.Adapter<adapterState.MyViewHolder>()
{
inner class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun setDataState(listDM: stateData){
Glide.with(itemView.context)
.load(listDM.photo)
.into(itemView.listPhotoState)
itemView.listTextState.text = listDM.name
}
}

override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val listState = listState[position]
holder.setDataState(listState)
}

override fun getItemCount() = listState.size

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val textView = LayoutInflater.from(parent.context)
.inflate(R.layout.grid_view_state, parent, false)
return MyViewHolder(textView)
}
}
数据类
package com.e.shoppingmallfooddrink

data class stateData (var name: String, var photo: String)

object stateFlag {
val listState = listOf<stateData>(
stateData("Selangor","https://www.crwflags.com/fotw/images/m/my-selan.gif"),
stateData("Kuala Lumpur","https://www.crwflags.com/fotw/images/m/my-kl.gif"),
stateData("Malacca","https://www.crwflags.com/fotw/images/m/my-melak.gif"),
stateData("Johor","https://www.crwflags.com/fotw/images/m/my-01.gif"),
stateData("Penang", "https://www.crwflags.com/fotw/images/m/my-p.gif"),
stateData("Pahang","https://www.crwflags.com/fotw/images/m/my-pahan.gif"),
stateData("Kedah","https://www.crwflags.com/fotw/images/m/my-kd.gif"),
stateData("Kelantan","https://www.crwflags.com/fotw/images/m/my-kelan.gif"),
stateData("Negeri Sembilan","https://www.crwflags.com/fotw/images/m/my-neger.gif"),
stateData("Perak","https://www.crwflags.com/fotw/images/m/my-perak.gif"),
stateData("Perlis","https://www.crwflags.com/fotw/images/m/my-perli.gif"),
stateData("Sabah","https://www.crwflags.com/fotw/images/m/my-sabah.gif"),
stateData("Sarawak","https://www.crwflags.com/fotw/images/m/my-saraw.gif"),
stateData("Trengganu","https://www.crwflags.com/fotw/images/m/my-teren.gif"),
stateData("Putrajaya","https://www.crwflags.com/fotw/images/m/my-pj.gif"),
stateData("Labuan","https://www.crwflags.com/fotw/images/m/my-la.gif")
)
}

最佳答案

该错误给出了确切的问题。 Too many arguments for public constructor adapterState(listState: List) .构造函数只接受一个参数

class adapterState (val listState:List<stateData>)

但是您传递了两个参数:
viewAdapter = adapterState(filteredList, this@MainActivity)

删除 this@MainActivity争论。

关于kotlin - 错误(公共(public)构造函数适配器状态(listState List,stateData>)没有伴随对象和太多参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61849668/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com