我想在单击 FloatingActionButton 时调用 Fragment 方法。
我正在使用 Butterknife。
错误:
PID: 9956 java.lang.NullPointerException: Attempt to invoke virtual method 'void com.fischerdaniel.testapp.FirstFragment.setTvText()' on a null object reference
MainActivity 部分:
@OnClick({R.id.fab_one, R.id.fab_two, R.id.fab_three}) public void test(View view) {
switch (view.getId()) {
case R.id.fab_three:
FirstFragment firstFragment = (FirstFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_first);
firstFragment.setTvText();
break;
default:
break;
}
}
fragment 部分:
@BindView(R.id.et_one) EditText etOne;
@BindView(R.id.et_two) EditText etTwo;
@BindView(R.id.tv_one) TextView tvOne;
@BindView(R.id.tv_two) TextView tvTwo;
private Unbinder unbinder;
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_first, container, false);
unbinder = ButterKnife.bind(this, view);
return view;
}
protected void setTvText() {
tvOne.setText(etOne.getText());
tvTwo.setText(etTwo.getText());
}
最佳答案
请参阅此链接:findFragmentById always returns null
创建 fragment 时,使用:
add(int id, Fragment fragment, String tag)
然后要获取您的 fragment ,请使用:
findFragmentByTag(String tag)
关于android - 在 Activity 中调用 Fragment 方法导致空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42600005/