Почему я получаю KotlinNullPointerException при создании приложения для записи - PullRequest
0 голосов
/ 13 апреля 2020

Я новичок в kotlin, и я застреваю с KotlinNullPointerException, когда у моего RecyclclerView нет данных, экран закрывается. Но это было работать, когда у него есть данные. Я буду признателен за вашу доброту.

Это мой код

RecordingRepository

private val recorderDirectory = File(Environment.getExternalStorageDirectory().absolutePath+"/soundrecorder/")
    private var file : ArrayList<String>? = null

    init {
        file = ArrayList<String>()
        getRecording()
    }

    private fun getRecording(){
        val files: Array<out File>? = recorderDirectory.listFiles()
        for(i in files!!){
            println(i.name)
            file?.add(i.name)
        }
    }

    fun getRecordings() = file

}

ShowActivity

private fun initUI() {
        //Get the viewmodel factory
        val factory = InjectorUtils.provideRecordingViewModelFactory()

        //Getting the viewmodel
        viewModel = ViewModelProviders.of(this, factory).get(RecordingViewModel::class.java)

        updateAdapter()

    }

    private fun updateAdapter() {
        data = viewModel?.getRecordings()
        println("Updating Adapter")
        groupAdapter.clear()

        if(data != null) {
            data!!.forEach {
                println("Data: $it")
                groupAdapter.add(Recording(it,this))
            }
        }
    }

RecordingViewModel

class RecordingViewModel(val recordingRepository: RecordingRepository): ViewModel(){

    fun getRecordings() = recordingRepository.getRecordings()
}

RecordingViewModelProvider

class RecordingViewModelProvider(val recordingRepository: RecordingRepository): ViewModelProvider.NewInstanceFactory(){
    override fun <T : ViewModel?> create(modelClass: Class<T>): T {
        return RecordingViewModel(recordingRepository) as T
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...