gpt4 book ai didi

android - 如何在 android Activity 完成后刷新 fragment ?

转载 作者:太空狗 更新时间:2023-10-29 15:45:34 26 4
gpt4 key购买 nike

我正在处理用户登录程序

首先,用户输入一个 fragment ,

fragment中,它首先检查用户是否已经登录,如果是,则填充登录屏幕,否则填充登录表单。

简单的代码是这样的

if (prefs_user exist) {
v = inflater.inflate(R.layout.fragment_logined, container, false);

logout.setOnClickListener(new View.OnClickListener() {
editor.remove(prefs_user).commit();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(frag).attach(frag).commit();
});
} else {
v = inflater.inflate(R.layout.fragment_login, container, false);
login.setOnClickListener(new View.OnClickListener() {
editor.put(prefs_user, true).commit();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(frag).attach(frag).commit();
});

reg.setOnClickListener(new View.OnClickListener() {
intent to start register activity
});
}

然后,对于注册 Activity

if(reg_success) {
app.editor.putString("prefs_user",true).commit();
finish();
}

到目前为止它适用于登录/注销,问题是,在新 Activity 中注册后, fragment 没有更新,例如用户注册成功后应显示注销屏幕。

Activity 完成后如何刷新 fragment ?谢谢

最佳答案

为了解决它,你可以像下面这样开始注册 Activity :

Intent intent = new Intent(getActivity(), register .class);
startActivityForResult(intent, 10001);

当你完成你的 Activity 时,你应该像下面这样设置结果:

setResult(Activity.RESULT_OK)

现在在您的 fragment 中,您将通过覆盖 fragment 中的 onActivityResult() 来获得完成 Activity 的事件。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if ((requestCode == 10001) && (resultCode == Activity.RESULT_OK))
// recreate your fragment here
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(frag).attach(frag).commit();
}

就是这样。

希望对你有所帮助。

关于android - 如何在 android Activity 完成后刷新 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33294669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com