我有几个由活动托管的片段,我想从托管活动访问片段视图上的特定片段按钮
从片段中我可以像这样访问活动的按钮
btnSubmit = (MaterialButton) getActivity().findViewById(R.id.submit_btn);
我想做相反的事情,有什么方法可以做到这一点吗?
使用活动片段执行某些操作的正确方法如下
碎片
class MyFragment: Fragment(){
var button: Button? = null
override fun onCreateView(){
...
button = view.findViewById(..)
}
fun disable(){
button.enabled = false
}
}
活动
使用片段管理器通过 ID(或其他方式)找到片段并将其转换为您的片段
然后调用该片段的方法(参见上面的 MyFragment)以禁用按钮
class MainActivity: AppCompatActivity(){
fun disableFragmentButton(){
(supportFragmentManager.findFragmentById(...) as MyFragment).disable()
}
}