通过两个活动将对象传递给Fragment

时间:2016-02-13 17:13:41

标签: android android-fragments

在我的FirstActivity中,用户将登录。如果用户存在于数据库中,则会加载该用户并且应该" 传递"到SecondActivityFragment范围内的SecondActivity。需要检查用户是否有不完整的注册,如果是,工具栏将显示一个警告菜单项,告诉它完成注册。

┌FirstActivity
├─SecondActivity
└──SecondActivityFragment

我看到的每个教程都展示了如何通过Activity和Fragment传递数据来讨论替换片段等等,我认为这不是我的情况。

我在newInstance()创建了SecondActivityFragment,但我有点迷失。

public static SecondActivityFragment newInstance(User user) {
        Bundle args = new Bundle();
        args.putSerializable("user", user);
        SecondActivityFragment fragment = new SecondActivityFragment();
        fragment.setArguments(args);
        return fragment;
}

当用户点击登录按钮时

if (userExists()) {
    userManager = new UserManager();
    User user = userManager.getByEmailPwd(editEmail.getText().toString(), editPwd.getText().toString());
    Intent secondActivity = new Intent(getContext(), SecondActivity.class);

    SecondActivityFragment.newInstance(user);
    startActivity(secondActivity);
}

2 个答案:

答案 0 :(得分:4)

尝试将user放入secondActivity意图。

然后在SecondActivity的{​​{1}}方法中,使用onCreate获取user课程,并创建getIntent().getSerializable()的实例。

答案 1 :(得分:2)

调用

import pandas as pd
import DataFrame as df
x=0
p=0
GDZ=0
while x < 1000:
    if GDZ == 0:
        ZroTst = df.iloc[x, Zerstng]
        if ZroTst == 'ZZ':
            GDZ = 1
            x +=1
        else:
            x +=1

    else:
        ZroTst = df.iloc[x,Zerstng]
        if ZroTst == 'BB':
            GDZ = 0
            x +=1
        else:
            p +=1            
            dh.iloc[p,A] = df.iloc[x,A]
            dh.iloc[p,B] = df.iloc[x,B]
            dh.iloc[p,C] = df.iloc[x,C]
            dh.iloc[p,D] = df.iloc[x,D]
            dh.iloc[p,E] = df.iloc[x,E]
            dh.iloc[p,F] = df.iloc[x,F]
            x +=1

x +=1
这样,不会对所呈现的内容产生任何影响。

如果要在第二个活动的上下文中显示片段,请考虑将片段需要知道的数据传递给第二个活动 - 它应该是这样的:

    SecondActivityFragment.newInstance(user);

然后在SecondActivity的onCreate中,或者在其他方法中,您必须为SecondActivityFragment实例替换正在显示的片段:

    secondActivity.putSerializable("user", user)