我有一个活动,让我们把它称为 A
,然后它就会发射一个片段,像这样。
remoteFragment = new RemoteFragment();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.frameLayout_remote_activity, remoteFragment)
.commit();
my 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
始终是空的。
我的问题是如何从我的活动中的片段中获取视图对象?
在这里,你试图找到来自于 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;
}
另外,请确保你在创建片段后就调用这个方法。