如何从另一个活动中获取价值并带回以前的片段?

时间:2016-03-09 09:33:55

标签: android android-activity fragment onbackpressed

我有一个活动,它有3个片段(FragmentA,FragmentB,FragmentC),就像滑动标签一样。从FragmentB调用另一个活动(让我们调用ActivityBB)。从Activity BB获取项目后,如何从ActivityBB获取值并返回到之前的FragmentB ???

3 个答案:

答案 0 :(得分:0)

嗯,我想到的有三种方式。可能会有更多。但是现在让我告诉你那些。

  1. 在ActivityBB上,将要保存的值放在SharedPreferences中。然后重新启动您的活动。是的,这可能只有在您可以按键值对排列的值时才有效。而且也不是正确的做事方式。但是会完成你的工作。
  2. 要重新启动活动,请使用此代码。然后从SharedPreferences获取您的值。

    Intent intent = getIntent();
    finish();
    startActivity(intent);
    
    1. 您可以实现接口。此方法是片段之间通信的最佳方式。有关详细信息,请查看Google的文档。
    2. http://developer.android.com/training/basics/fragments/communicating.html

      1. 您可以使用Bundles。检查此链接。
      2. How to pass a value from one Fragment to another in Android?

答案 1 :(得分:0)

你可以试试这样的...... 将你的价值转化为意图。

ActivityBB中的此代码

 Intent intent = new Intent(ActivityBB.this,ActivityBB.class);
            intent.putExtra("yourDataKey",yourData)
            startActivity(intent);

之后,将您的值输入ActivityAA并使用所需数据加载Fragment

Intent intent = getIntent();
String yourValue = intent.getExtra("yourDataKey");

答案 2 :(得分:0)

我用这个流解决了这个使用意图和bundel:

  • MainActivity(FragmentA,FragmentB,FragmentC)
    此活动(例如:来自FragmentB)使用intent将数据传递给ActivityBB

  • ActivityBB 在此活动的onClick ListItem中,我使用bundle传递数据并调用MainActivity(因为我想使用ActivityBB中的项值返回到我之前的片段)

  • 我在MainActivity的onCreate方法创建一个条件来显示currentItem(viewPager)

实际上是它的工作,但我认为这不是正确的方法。我希望有任何人可以通过适当的方式解决这个问题。