如何在处于操作栏导航模式的片段之间传递对象?

时间:2013-10-08 20:43:21

标签: android android-listview android-fragments

在我的应用程序中有两个片段(MenuFragment,BasketFragment),它们位于导航模式的操作栏选项卡中。

在MenuFragment中,我在listview中的ArrayList中保存Product类(Parcelable)的对象。我想要做的是在点击项目时在运行时将产品运送到BasketFragment。

到目前为止,我已尝试使用回调接口和捆绑方法,并且我一直面临NullPointerException。

请帮助我。如果你给出代码示例,将非常感激。

1 个答案:

答案 0 :(得分:0)

使用回调接口是执行此操作的正确方法。如果没有看到NullPointerException的堆栈跟踪,我就会认为这是因为没有正确设置回调。我想如果你在onAttach()中这样做,它应该可以正常工作:

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    try{
        mCallback = (BasketCallback)activity;
    }catch(ClassCastException ex){
        throw new ClassCastException(activity.getLocalClassName() + " must implement BasketCallback");
    }
}

然后,您可以从片段中调用回调方法,并让活动使用getSupportFragmentManager().findFragmentById(R.id.basket_fragment);

将对象传递给第二个片段