在activity的xml中无法通过findViewById属性获取Fragment

20 浏览
0 Comments

在activity的xml中无法通过findViewById属性获取Fragment

这个问题已经有了答案

在Fragment中使用findViewById

如何在活动xml中访问属性?

我想在片段中使用它。

例如:这是我的活动xml




    



我想在片段中找到ImageView的findViewByid

当我在寻找解决方案时,我得到了以下的答案:

TextView btn_back= (TextView) getView().findViewById(R.id.btn_back)

但是,不幸的是,它对我不起作用。

admin 更改状态以发布 2023年5月21日
0
0 Comments

使用viewModel或接口来在activity和fragment之间进行通信,不要试图将按钮发送到fragment中,而是从fragment中触发它。这将防止任何泄漏或空指针。

0
0 Comments

你可以使用接口来完成:

创建一个名为IBtnClick的接口,其中含有一个void方法:"void onBtnClicked();"

在activity中像这样使用接口:

IBtnClick iBtnClick= (IBtnClick)getActivity();

这里getAtivity是我们的上下文,如果不起作用,请使用另一个范围的上下文。

然后在按钮点击监听器中使用你的方法,像这样:

iBtnClick.onBtnClicked();

现在在你的fragment中,你必须实现这个接口,并且

你可以在重载的方法中添加任何你想要的动作。

0