@foonfyrick

Создал класс, расширяющий LiveData, почему в MainActivity не могу применить ExampleClass.value=edText.text.toString?

class MyLiveData: LiveData<String>() {
   
}

Main
class MainActivity : AppCompatActivity() {
    val myLiveData=MyLiveData()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btn_Ok.setOnClickListener {
            myLiveData.value = edText.text.toString() //  ошибка
            Log.e("//////////////////","${myLiveData.value}")
        }
    }
}

Но если я создам свой метод в классе MyLiveData,
fun getValue(s:String){
       value=s
    }

То myLiveData.getValue(edText.text.toString()) записывает значение в базу, почему?
  • Вопрос задан
  • 27 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Потому что надо читать ошибки и документацию.
setValue это protected метод. Вызвать его можно только из методов сабкласса, а извне нельзя.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы