当我从 Activity 调用 Fragment 时,Edittext 值变为空

Editext Value Getting Null when I call from Activity to Fragment

Activity -> 片段

我的 Activity 上有一个按钮。我想从 Fragment 中的 Edittext 中获取值。当我从 Activity 调用时,我得到了 Editext 的空值。

MainActivity.kt代码

buttonOne?.setOnClickListener {
        val frgment = MyFragment().getInstance()
        frgment?.buttonClick()
    }

MyFragment.kt代码

fun getInstance(): MyFragment? {
        return MyFragment()
    }

    fun buttonClick(){
        val value = et_fragment_first_name?.text.toString().trim()
        Log.e("Fragment", "FirstName $value")
}

有人可以帮我吗?我不想使用 Listner

您刚才所做的是创建了一个新的片段实例,而不是获取当前活动片段的实例,这就是您得到空值的原因。您可以使用 FragmentManager 通过标签或 Id

获取片段

MyFragment myFragment = (MyFragment)getSupportFragmentManager().findFragmentByTag("MY_FRAGMENT");