gpt4 book ai didi

android - 返回到上一个 fragment

转载 作者:行者123 更新时间:2023-11-30 01:39:18 35 4
gpt4 key购买 nike

当我启动我的应用程序时,我的第一个 fragment 被启动。在那个 Fragment 中,我单击一个按钮,用一个新的 Fragment 替换原来的 Fragment。当我点击第二个 fragment 时,它不会返回到第一个 fragment ,而是关闭应用程序并返回到我手机的主屏幕。有人知道为什么吗?

这是在我的 Activity 的 onCreate 方法中启动的原始 fragment :

public class Main extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

LoginFragment firstFragment = new LoginFragment();

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, firstFragment);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();

}
}}

这是这个 Fragment 的代码,其中包含调出第二个 Fragment 的按钮:

public class LoginFragment extends Fragment implements View.OnClickListener {
private FragmentTransaction ft;
private Button registerButton;

public LoginFragment() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_login, container, false);

registerButton = (Button)view.findViewById(R.id.register_button);
registerButton.setOnClickListener(this);

return view;
}

@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.register_button:{
RegisterFragment registerFragment = new RegisterFragment();
ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, registerFragment);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
break;
}
}
}}

启动的第二个 fragment 目前不包含任何内容。无论如何,当我在第二个 fragment 时按下手机上的后退键时,它不会返回到我的第一个 fragment 。

最佳答案

看来你只是忘了在容器 Activity 中实现 onBackPressed 方法:

@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0 ){
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}

关于android - 返回到上一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34709701/

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