Android获取活动中片段的视图[重复]
Posted
技术标签:
【中文标题】Android获取活动中片段的视图[重复]【英文标题】:Android get view of fragment in activity [duplicate] 【发布时间】:2020-10-05 22:44:14 【问题描述】:我有一个活动,我们称之为A
,它会像这样启动一个片段:
remoteFragment = new RemoteFragment();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.frameLayout_remote_activity, remoteFragment)
.commit();
我的remoteFragment
看起来像这样:
public Button okBtn;
public RemoteFragment()
// Required empty public constructor
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
Bundle savedInstanceState)
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_remote, container, false);
okBtn= view.findViewById(R.id.okBtn);
return view;
public RemoteLayoutView getOkBtn()
return okBtn;
在我的活动中,我试图做到这一点:
Button okBtnMessageNotWorking = remoteFragment.getOkBtn();
但okBtnMessageNotWorking
始终为空。
我的问题是如何从我的活动中的片段中获取视图对象?
【问题讨论】:
逻辑上没有限制这样做。也许您在创建片段视图之前调用了getOkBtn
。
尝试将按钮和方法设为静态
【参考方案1】:
在这里,您正试图从layoutOnTopScrollview
中找到视图。相反,您应该从膨胀视图中找到okBtn
。请更改代码如下:
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
Bundle savedInstanceState)
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_remote, container, false);
okBtn= view.findViewById(R.id.okBtn);
return view;
另外,请确保您在创建片段后调用此方法。
【讨论】:
请看我编辑的代码。我的问题有错误以上是关于Android获取活动中片段的视图[重复]的主要内容,如果未能解决你的问题,请参考以下文章
从 Firestore 回收视图中获取文件时遇到问题 [重复]