【问题标题】:Send String from an Activity to a Fragment of another Activity将字符串从 Activity 发送到另一个 Activity 的 Fragment
【发布时间】:2013-04-25 10:34:17
【问题描述】:

我有两个活动(A 和 B)和一个片段 F 片段 F 包含在活动 B 中 我想将字符串从活动 A 发送到片段 F 怎么能这样做? 谢谢!

【问题讨论】:

    标签: android android-intent android-fragments android-activity


    【解决方案1】:

    这与您在活动之间交换数据几乎相同。您应该只在开始时使用 getActivity() 以便在片段中访问。

    查看以下代码:

    在活动 A 中:

    Intent intent = new Intent(this,ActivityB.class);
    intent.putExtra("data",data); //data is a string variable holding some value.
    startActivity(intent); 
    

    在Activity B的片段F中

    String data = getActivity().getIntent().getStringExtra("data");
    

    【讨论】:

      【解决方案2】:

      首先,您实际上会将该字符串发送到您的活动 B。例如:

      Intent intent = new Intent(this, YourActivityClass.class);
      intent.putExtra("myString", "this is your string");
      startActivity(intent);
      

      然后稍后从您的活动 B 中读取该字符串并在执行片段事务之前注入您的片段。例如:

      Bundle args = new Bundle();
      args.putString("myString", getIntent().getExtras().getString("myString"))
      yourFragment.setArguments(args);
      

      稍后,在您的片段中使用getArguments() 来检索该捆绑包。


      或者,在您的片段中使用以下内容直接访问活动意图并获取您所需的值:

      String str = getActivity().getIntent().getStringExtra("myString");
      

      欲了解更多信息,请阅读this

      【讨论】:

      • @Santhosh 的答案更简单。
      【解决方案3】:

      在 Fragment.java 文件中添加以下代码,

      public static String name= null;
      
      public void setName(String string){
      name = string;
      }
      

      在要发送字符串的 MainActivity.java 中添加以下代码,

      String stringYouWantToSend;
      
      Fragment fragment =  new Fragment();
      fragment.setName(stringYouWantToSend);    
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多