我无法实现编辑片段根视图的方法。这是有问题的代码
public class CanvasFragment extends Fragment {
View rootView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
rootView = inflater.inflate(R.layout.canvas_layout, container, false);
return rootView;
}
public void updateColor(String color){
rootView.setBackgroundColor(Color.parseColor(color));
}
我的问题与我的主要活动中的一些代码一起出现了:
@Override
public void sendColor(String color) {
FragmentManager fragmentSwitchManager = getFragmentManager();
FragmentTransaction fragmentSwitchTransaction = fragmentSwitchManager.beginTransaction();
CanvasFragment canvasFragment = new CanvasFragment();
fragmentSwitchTransaction.replace(R.id.paletteFrame, canvasFragment);
fragmentSwitchTransaction.addToBackStack(null);
fragmentSwitchTransaction.commit();
canvasFragment.updateColor(color);
}
正如您所看到的,在我的主要活动中,我使用PaletteFragment
替换paletteFrame
中的CanvasFragment
,即框架布局。我已对此进行了测试并且工作正常,但在尝试调用updateColor()
时,我收到错误。
错误声称rootView是一个空对象引用,因此我无法在其上调用setBackgroundColor()
。我不确定为什么会这样,因为我之前测试过类似的代码(其中我没有替换片段)并且它工作正常。任何帮助,将不胜感激。谢谢!