Я новичок в 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
}
}