Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Kotlin recyclerView没有';不要调用任何适配器方法_Android_Kotlin_Android Recyclerview - Fatal编程技术网

Android Kotlin recyclerView没有';不要调用任何适配器方法

Android Kotlin recyclerView没有';不要调用任何适配器方法,android,kotlin,android-recyclerview,Android,Kotlin,Android Recyclerview,RecyclerView适配器让我恶心-在应用程序运行期间没有对适配器方法的任何调用。数据已在FileListPresenterImpl类中初始化,但没有任何调用。请帮忙 class FileListAdapter(val fileList: List<File>): RecyclerView.Adapter<FileListAdapter.ViewHolder>() { override fun onBindViewHolder(holder:

RecyclerView适配器让我恶心-在应用程序运行期间没有对适配器方法的任何调用。数据已在FileListPresenterImpl类中初始化,但没有任何调用。请帮忙

class FileListAdapter(val fileList: List<File>):
        RecyclerView.Adapter<FileListAdapter.ViewHolder>() {

    override fun onBindViewHolder(holder: ViewHolder, position: Int)  {
        holder.bindData(fileList[position])
    }

    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
        var v = LayoutInflater.from(parent?.context).inflate(R.layout.row_item_file, parent, false)
        return ViewHolder(v)
    }

    override fun getItemCount(): Int = fileList.size

    class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
        fun bindData(file: File) {
            itemView.tvFileName.text = file.getFileName()
            itemView.tvPath.text = file.savePath
        }
    }
}


class FileListFragment: ListFragment(), FileListView, ListFragment.RecyclerItemClickListener.OnItemClickListener {

    lateinit private var addFileDialog: AddFileDialogFragment
    lateinit private var listAdapter: FileListAdapter
    lateinit private var listData: ArrayList<File>

    val presenter = FileListPresenterImpl(this)

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        return context.inflateLayout(R.layout.fragment_list)
    }

    override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        addFileDialog = AddFileDialogFragment()

        rvDataList.addOnItemTouchListener(object : RecyclerItemClickListener(activity, listener = this) {})
        presenter.loadFileList()

        fab.setOnClickListener { showNewFileAddDialog() }

    }

    ...

    override fun onFileListLoad(fileList: ArrayList<File>) {
        listData = fileList
        initAdapter()
    }

    private fun initAdapter() {
        listAdapter = FileListAdapter(listData)
        rvDataList.adapter = listAdapter
    }


}


class FileListPresenterImpl(private val view: FileListView): FileListPresenter {

    override fun loadFileList() {
        //TODO load fileList from DB
        view.onFileListLoad(loadTestFileList())
    }

    ...

    private fun loadTestFileList(): ArrayList<File> {
        var testData = ArrayList<File>()

        var downloadFolder : String = Environment.DIRECTORY_DOWNLOADS

        val f: File = File(downloadFolder, "http://cdndl.zaycev.net/154044/4082702/vremya_i_steklo_-_navernopotomuchto_(zaycev.net).mp3")

        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/154044/4082702/vremya_i_steklo_-_navernopotomuchto_(zaycev.net).mp3"))
        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/871888/4212215/craig_david_and_sigala_-_ain_t_giving_up_(zaycev.net).mp3"))
        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/111639/4135024/albina_-_ne_nado_(zaycev.net).mp3"))
        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/126287/4087650/pika_-_patimeyker_(zaycev.net).mp3"))
        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/861221/4125726/lil_wayne_and_wiz_khalifa_and_imagine_dragons_and_logic_and_ty_dolla_sign_and_x_ambassadors_-_sucker_for_pain_(zaycev.net).mp3"))
        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/12757/4212221/the_black_eyed_peas_-_where_is_the_love_2016_remake_(zaycev.net).mp3"))
        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/118309/4214105/yolka_-_na_bolshom_vozdushnom_share_(zaycev.net).mp3"))
        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/126708/3989697/potap_i_nastya_-_umamy_(zaycev.net).mp3"))
        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/871784/4211700/philip_rossa_-_pam_pam_pam..._radio_edit_(zaycev.net).mp3"))
        testData.add(File(downloadFolder, "http://cdndl.zaycev.net/123704/4087949/mot_-_na_dne_(zaycev.net).mp3"))

        return testData
    }

}
class FileListAdapter(val fileList:List):
RecyclerView.Adapter(){
覆盖BindViewHolder(holder:ViewHolder,位置:Int){
holder.bindData(文件列表[位置])
}
覆盖创建ViewHolder(父级:ViewGroup?,viewType:Int):ViewHolder{
var v=LayoutFlater.from(父级?.context)。充气(R.layout.row\u item\u文件,父级,false)
返回视窗支架(v)
}
重写getItemCount():Int=fileList.size
类ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){
fun bindData(文件:文件){
itemView.tvFileName.text=file.getFileName()
itemView.tvPath.text=file.savePath
}
}
}
类FileListFragment:ListFragment(),FileListView,ListFragment.RecyclerItemClickListener.OnItemClickListener{
lateinit私有变量addFileDialog:AddFileDialogFragment
lateinit私有变量listAdapter:FileListAdapter
lateinit私有变量listData:ArrayList
val presenter=FileListPresenterImpl(此)
覆盖创建视图(充气机:布局充气机,容器:ViewGroup?,savedInstanceState:Bundle?):视图{
返回context.inflateLayout(R.layout.fragment\u列表)
}
覆盖已创建的视图(视图:view?,savedInstanceState:Bundle?){
super.onViewCreated(视图,savedInstanceState)
addFileDialog=AddFileDialogFragment()
rvDataList.addOnItemTouchListener(对象:RecyclerItemClickListener(活动,listener=this){})
presenter.loadFileList()
fab.setOnClickListener{showNewFileAddDialog()}
}
...
重写onFileListLoad(文件列表:ArrayList){
listData=fileList
initAdapter()
}
专用适配器(){
listAdapter=FileListAdapter(listData)
rvDataList.adapter=listAdapter
}
}
类FileListPresenterImpl(私有val视图:FileListView):FileListPresenter{
覆盖有趣的loadFileList(){
//TODO从数据库加载文件列表
view.onFileListLoad(loadTestFileList())
}
...
private fun loadTestFileList():ArrayList{
var testData=ArrayList()
var downloadFolder:String=Environment.DIRECTORY\u DOWNLOADS
val f:File=File(下载文件夹,“http://cdndl.zaycev.net/154044/4082702/vremya_i_steklo_-_navernopotomuchto_(zaycev.net).mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/154044/4082702/vremya_i_steklo_-_navernopotomuchto_(zaycev.net.mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/871888/4212215/craig_david_and_sigala_-_ain_t_giving_up_(zaycev.net.mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/111639/4135024/albina_-_ne_nado_(zaycev.net.mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/126287/4087650/pika_-_patimeyker_(zaycev.net.mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/861221/4125726/lil_wayne_and_wiz_khalifa_and_imagine_dragons_and_logic_and_ty_dolla_sign_and_x_ambassadors_-_sucker_for_pain_(zaycev.net.mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/12757/4212221/the_black_eyed_peas_-_where_is_the_love_2016_remake_(zaycev.net.mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/118309/4214105/yolka_-_na_bolshom_vozdushnom_share_(zaycev.net.mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/126708/3989697/potap_i_nastya_-_umamy_(zaycev.net.mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/871784/4211700/philip_rossa_-_pam_pam_pam..._radio_edit_(zaycev.net.mp3)
添加(文件(下载文件夹,)http://cdndl.zaycev.net/123704/4087949/mot_-_na_dne_(zaycev.net.mp3)
返回测试数据
}
}

-来源

问题解决了。我没有将LayoutManager设置为recyclerView

请添加实例化
FileListAdapter
的代码部分,并将其附加到
recyclerView
。既然您解决了问题,请选择您的答案作为解决方案。