Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何正确地从片段返回变量?_Java_Android_Android Layout_Android Fragments_Android Navigation - Fatal编程技术网

Java 如何正确地从片段返回变量?

Java 如何正确地从片段返回变量?,java,android,android-layout,android-fragments,android-navigation,Java,Android,Android Layout,Android Fragments,Android Navigation,情况: 在按下按钮的第一个片段时,我想打开第二个片段 部分 在第二个片段中,我可以创建新的节(或使用现有的),然后在列表项中创建 单击打开第三个片段 在第三个片段中,我可以编写新服务(或使用现有服务),然后在按钮上 单击返回到第一个片段 和显示部分(来自第二个片段)和服务(来自第三个片段) 碎片) 我的想法是在第二个片段上使用fragment.setArguments(bundle),并将其传输到第三个片段 在带有接口A{public void sendData(data);}的第三个片段上

情况:

  • 在按下按钮的第一个片段时,我想打开第二个片段 部分
  • 在第二个片段中,我可以创建新的节(或使用现有的),然后在列表项中创建 单击打开第三个片段
  • 在第三个片段中,我可以编写新服务(或使用现有服务),然后在按钮上 单击返回到第一个片段
  • 和显示部分(来自第二个片段)和服务(来自第三个片段) 碎片)

    • 我的想法是在第二个片段上使用
      fragment.setArguments(bundle)
      ,并将其传输到第三个片段
    • 在带有
      接口A{public void sendData(data);}
      的第三个片段上,我将把变量返回到片段一
  • 如何正确地将变量从AllServicesSectionFragmnet+AllServicecDescriptionFragment返回到CreateNewServiceFragment?

    为fragmentA提供标记

    fragmentTransaction.add(新FragmentA(),“FragmentA\u标记”)

    在第三段加上

    FragmentA fback=FragmentManager.findfragmentByTag(“fragment_标签”)

    并在backButton方法中写入

    if(fback!=null)
    {
    fback.show;
    }

    给碎片一个标签

    fragmentTransaction.add(新FragmentA(),“FragmentA\u标记”)

    在第三段加上

    FragmentA fback=FragmentManager.findfragmentByTag(“fragment_标签”)

    并在backButton方法中写入

    if(fback!=null)
    {
    fback.show;
    
    }

    您可以将片段视为一个函数:它可以从另一个片段调用,并可以返回一个值(使用)

    当您希望另一个片段给您一个值时,您可以使用setTargetFragment调用它,并等待调用onActivityResult。当被调用的片段打开另一个片段以完成其任务时,它还应该等待onActivityResult并向调用者返回一个值

    所以,伪代码:

    fn fragment1() {
        handleData(call fragment2(arg));
    }
    
    fn fragment2(arg: T) -> U {
        return handle(call fragment3(arg));
    }
    
    fn fragment3(arg: T) -> U {
        // handle some user input
        return value;
    }
    

    可以表示为一系列setTargetFragment和onActivityResult调用。

    您可以将您的片段视为一个函数:它可以从另一个片段调用,并且可以返回一个值(使用)

    当您希望另一个片段给您一个值时,您可以使用setTargetFragment调用它,并等待调用onActivityResult。当被调用的片段打开另一个片段以完成其任务时,它还应该等待onActivityResult并向调用者返回一个值

    所以,伪代码:

    fn fragment1() {
        handleData(call fragment2(arg));
    }
    
    fn fragment2(arg: T) -> U {
        return handle(call fragment3(arg));
    }
    
    fn fragment3(arg: T) -> U {
        // handle some user input
        return value;
    }
    

    可以表示为一系列setTargetFragment和onActivityResult调用。

    如何从片段3返回到片段1?如何从片段3返回到片段1?这包含SecondFragment而不是FirstFragment
    FragmentA fback=FragmentManager.findfragmentByTag(“FragmentU标记”)
    FragmentA的此标记,FragmentB具有不同的标记此包含SecondFragment而不是FirstFragment
    FragmentA fback=FragmentManager。findfragmentByTag(“FragmentU标记”)
    此标记对于FragmentA,FragmentB具有不同的标记