关于android Bundle错误(从片段到活动)

时间:2014-11-12 16:33:35

标签: android android-intent fragment bundle

我想将数据从fragmentdialog传递给MainActivity

这是用于在片段

中发送日历数据的代码
 Intent intent = new Intent(getActivity() , MainActivity.class);
 timePick.getCurrentMinute());
 Bundle bundle = new Bundle();
 bundle.putLong("mili", mCalendar.getTimeInMillis());
 intent.putExtras(bundle);

这是在MainActivity中接收日期的代码

long a = getIntent().getExtras().getLong("mili");

这部分会出错。

请帮帮我

2 个答案:

答案 0 :(得分:0)

要将数据从Fragment发送到Activity,建议的方法是在Robust way to pass value back from Dialog to Activity on Android?问题的答案中显示。这是传递值的首选方式。

您需要做的是在片段中创建一个接口,并使您的活动实现此接口侦听器。然后传递你的结果。 Android开发团队推荐使用此方法。

另一种方法是从你的片段调用getActivity(),它会传递一个创建这个片段的Activity的实例,你可以在那里调用父活动的任何方法(首先将结果转换为类型)父母活动)。

答案 1 :(得分:0)

你可以很容易地实现活动和片段之间的接口。就像这一点 首先创建界面

public interface CallBackListener {
    public void onCallBack(Long mili);
}

然后实现此活动的接口,以获取数据并假设其片段的父活动如此

public class YourActivity extends Activity implements CallBackListener {
    ...
    @Override
    public void onCallBack(Long mili){
        //take value of mili as you wanted.
    }
}

在你的fragmentdialog中,当你需要回调或数据时,只需调用下面给出的方法。

CallBackListener callBackListener = (CallBackListener) getActivity();
callBackListener.onCallBack(mili);