Извлечь текст из текста редактирования на вкладке в основное действие - PullRequest
2 голосов
/ 09 апреля 2019

У меня есть действие с макетом с вкладками, содержащим несколько разных вкладок. Каждая вкладка содержит несколько полей 'edittext'. У меня есть кнопка на основной деятельности и, нажав на нее, я хочу сохранить содержимое каждого поля edittext из каждой вкладки. В настоящее время я могу вернуть обычное значение из вкладки, но не могу получить содержимое поля edittext.

Я попытался создать 'lateinit var frag1_tenNo: EditText' внутри класса фрагмента для вкладки. Я инициализировал его в onCreateView, но программа выдает сообщение о том, что 'свойство lateinit frag1_tenNo не было инициализировано'

фрагмент кода


class frag1: Fragment() {

   lateinit var frag1_tenNo : EditText

    override public fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        val viewFrag1 = inflater.inflate(R.layout.frag1, container, false)
        frag1_tenNo = viewFrag1.findViewById(R.id.survey_tenantNo)
        return viewFrag1
    }

    fun saveFrag1Data(): String {
        var data1 = frag1_tenNo.text.toString()
        return data1
    }

код активности - для извлечения данных

save_btn.setOnClickListener {
            Log.d("Survey","Change Button Clicked")
            val test = frag1().saveFrag1Data()
            Log.d("Survey","Returned value : $test")
        }

1 Ответ

0 голосов
/ 09 апреля 2019

val test = frag1().saveFrag1Data() Здесь вы создаете новый фрагмент. OnCreate метод этого фрагмента еще не вызван. Так что вполне предсказуемо вы получите lateinit property frag1_tenNo has not been initialized ошибку.

...