Android 在同一活动中添加新片段时,调用当前片段的哪个方法

Android 在同一活动中添加新片段时,调用当前片段的哪个方法,android,android-fragments,Android,Android Fragments,在同一活动中,当在当前片段的顶部添加新片段时,我想隐藏编辑文本的错误消息,但当在顶部添加新片段时,不会调用当前片段的任何方法 谢谢 我只想隐藏在fragmentA上添加的EditText视图的错误消息,如下所示 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(

在同一活动中,当在当前片段的顶部添加新片段时,我想隐藏编辑文本的错误消息,但当在顶部添加新片段时,不会调用当前片段的任何方法

谢谢

我只想隐藏在fragmentA上添加的EditText视图的错误消息,如下所示

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.um_fragment_nav_signup_frag, container, false);

    mobileNumEditText= (EditText) view.findViewById(R.id.et_nav_mobile);

    mobileNumEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            mobileNumEditText.setError(null);
        }
    });

    return view;
}

@Override
public void onHiddenChanged(boolean hidden) {
    mobileNumEditText.setError(null);
    super.onHiddenChanged(hidden);
}

@Override
public void onPause() {
    mobileNumEditText.setError(null);
    super.onPause();
}
但在同一活动中使用给定的方法添加另一个片段(FragmentB)时调用了这些方法中的任何一个

@Override
public final void addFragment(Fragment fragment, int containerId,
                              boolean addToBackStack) {
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.add(containerId, fragment, fragment.getClass().getSimpleName());
    if (addToBackStack) {
        ft.addToBackStack(null);
    }
    ft.commit();
}
请你自己检查一下

我建议您覆盖片段中的所有片段生命周期方法,并在每个方法中放置断点,然后自己检查。

请检查并自己检查


我建议您覆盖片段中的所有片段生命周期方法,并在每个方法中放置断点,然后自己检查。

如果我理解正确,您正在寻找onPause()方法,该方法用于已被另一个替换的片段。

如果我理解正确,您正在查找onPause()方法,该方法是为已被另一个替换的片段调用的。

当前片段仅在被删除或替换时才会受到影响。简单地添加新片段只会在当前片段上显示新片段,并且不会调用当前片段的生命周期方法

根据您的问题,最好在执行片段事务之前隐藏编辑文本的错误消息

退房-

当前片段只有在被删除或替换时才会受到影响。简单地添加新片段只会在当前片段上显示新片段,并且不会调用当前片段的生命周期方法

根据您的问题,最好在执行片段事务之前隐藏编辑文本的错误消息

退房-

看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。我编辑了一个问题,请现在检查。为什么不在addFragment方法中使用现有片段a的对象来调用片段a的公共方法来删除mobileNumEditText.setError(null);看起来你想让我们为你写些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。我编辑了一个问题,请现在检查。为什么不在addFragment方法中使用现有片段a的对象来调用片段a的公共方法来删除mobileNumEditText.setError(null);但是在上面添加另一个片段时,不会调用片段的onPause()方法在顶部添加另一个片段时未调用fragment的方法。我检查了fragment的生命周期,但在添加新片段时找不到任何调用的当前片段方法。显示覆盖方法的片段代码。我检查了fragment的生命周期,但在添加新片段时找不到任何调用的当前片段方法已添加片段。显示重写方法的片段代码