我正在使用MVP。我的活动包含一个片段。我正在初始化,然后设置演示者在Main-Activity的Create方法内部进行分段,如下所示。MVP中的演示者(Android)被删除/在片段内部为空
public class MainActivity extends AppCompatActivity {
private StashPresenter stashPresenter;
private MainFragment mainFragment;
FragmentManager fm;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
App.getInstance().getAppComponent().inject(this);
setContentView(R.layout.activity_main);
fm = getSupportFragmentManager();
fm.beginTransaction()
.add(R.id.fragment_container, MainFragment.newInstance(),"mainFragment")
.commitNow();
mainFragment = (MainFragment) fm.findFragmentById(R.id.fragment_container);
stashPresenter = new StashPresenter(mainFragment);
mainFragment.setPresenter(stashPresenter);
}
在我的mainFrgament类中我settinf Pretinter在setPresenterFunction中,如下所示。
public class MainFragment extends Fragment implements
StashContract.PublishToView {
public StashContract.ToPresenter forwardInteraction;
public void setPresenter(StashContract.ToPresenter forwardInteraction)
{
this.forwardInteraction = forwardInteraction;
}
有时同时在内部mainFragment的OnCreateView我下面的代码所示执行搜索操作,我得到一个错误,说我前进的 “尝试调用接口方法的空对象引用”
有时我得到这个错误,有时候我没有。我不明白为什么会这样
即使在mainActivity的onCreate方法中设置了演示者并在onStart()内使用Presenter之后,它仍然无法正常工作。 还有一件事我注意到,mainFrgament的onResume()方法被调用两次。 –