无法获取片段中EditText的文本-Android Kotlin

无法获取片段中EditText的文本-Android Kotlin,android,android-fragments,android-edittext,Android,Android Fragments,Android Edittext,我有一个片段,有2个编辑文本,2个文本视图和1个按钮。我试图将文本输入到第一个EditText(inputask1),但始终收到null 我尝试了OnCreateView()和OnViewCreated(),但没有任何效果。谢谢大家! 这是片段布局: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http:

我有一个
片段
,有2个
编辑文本
,2个
文本视图
和1个
按钮
。我试图将文本输入到第一个
EditText
(inputask1),但始终收到
null

我尝试了
OnCreateView()
OnViewCreated()
,但没有任何效果。谢谢大家!

这是片段布局:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/fragment_task_list">

    <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Task 1"
            android:id="@+id/inputTask1"
            android:inputType="text"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toTopOf="parent" android:layout_marginEnd="8dp"
            app:layout_constraintEnd_toEndOf="parent" android:layout_marginStart="8dp"
            app:layout_constraintStart_toStartOf="parent" android:layout_marginBottom="16dp"
            app:layout_constraintBottom_toTopOf="@+id/inputTask2"/>
    <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Task 2"
            android:id="@+id/inputTask2"
            android:inputType="text"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/inputTask1" android:layout_marginEnd="8dp"
            app:layout_constraintEnd_toEndOf="parent" android:layout_marginStart="8dp"
            app:layout_constraintStart_toStartOf="parent" android:layout_marginBottom="16dp"
            app:layout_constraintBottom_toTopOf="@+id/saveButton"/>
    <Button
            android:text="Save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/saveButton" android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/inputTask2" app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp" app:layout_constraintStart_toStartOf="parent"
            android:layout_marginStart="8dp" android:layout_marginBottom="16dp"
            app:layout_constraintBottom_toTopOf="@+id/viewTask1"/>
    <TextView
            android:text="Task 1 name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/viewTask1" android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/saveButton" app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp" app:layout_constraintStart_toStartOf="parent"
            android:layout_marginStart="8dp" android:layout_marginBottom="16dp"
            app:layout_constraintBottom_toTopOf="@+id/viewTask2"/>
    <TextView
            android:text="Task 2 name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/viewTask2"
            app:layout_constraintBottom_toBottomOf="parent" android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/viewTask1" app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp" app:layout_constraintStart_toStartOf="parent"
            android:layout_marginStart="8dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>

您正在将名为
view
的变量弄混。在
OnClickListener
中,
视图
是正在单击的
视图
,它将是
保存按钮
,并且它不包含您的
编辑文本
,因此
findViewById()
返回空值。最简单的修复方法可能是重命名
OnClickListener
视图
;e、 g.,
setOnClickListener{v->
。它很有效。非常感谢!
package com.example.repetodo

import android.content.Context
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
import androidx.fragment.app.Fragment
import kotlinx.android.synthetic.main.fragment_tasklist.view.*

class TaskListFragment : Fragment() {

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        var view: View = inflater.inflate(R.layout.fragment_tasklist, container, false)
        view.saveButton.setOnClickListener{view ->
            Log.i("TaskListFragment","Button is clicked")
            val editText = view.findViewById<EditText>(R.id.inputTask1)
            Log.i("TaskListFragment","the EditText ${editText}")
            Log.i("TaskListFragment","the text ${view.inputTask1?.text}")
            //Toast.makeText(context, "Button is clicked", Toast.LENGTH_LONG)
        }

        return view
    }

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

    }
}

I/TaskListFragment: Button is clicked
I/TaskListFragment: the EditText null
I/TaskListFragment: the text null