Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
Android 返回到活动的片段_Android_Android Intent_Android Activity_Fragment - Fatal编程技术网

Android 返回到活动的片段

Android 返回到活动的片段,android,android-intent,android-activity,fragment,Android,Android Intent,Android Activity,Fragment,我在活动C中有三个片段。它们的行为就像标签一样。我必须从一个片段转到一个新的活动X。现在我想回到活动X的片段 我已按下override On Backpressed,但不知道如何从活动返回fragment/not fragmentActivity 如果我想返回到一个活动到另一个活动,我会在按下back键时覆盖,并使用intent调用该活动 我想做这样的事。。此代码用于返回到以前的活动 @Override public void onBackPressed() { Intent inte

我在活动C中有三个片段。它们的行为就像标签一样。我必须从一个片段转到一个新的活动X。现在我想回到活动X的片段

我已按下override On Backpressed,但不知道如何从活动返回fragment/not fragmentActivity

如果我想返回到一个活动到另一个活动,我会在按下back键时覆盖,并使用intent调用该活动

我想做这样的事。。此代码用于返回到以前的活动

@Override
public void onBackPressed()
{

    Intent intent = new Intent(CurrentActivity.this,ActivityYouLikeToGo.class);

    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

    startActivity(intent);
}
提前感谢。

您可以添加一个标记(片段的字符串名称),然后使用
findFragmentByTag()加载片段。

findFragmentByTag()
的谷歌文档是

或者,您也可以在从
FragmentTransaction
,doc链接调用片段时
addToBackStack()
。 从谷歌文档:

通过调用addToBackStack(),替换事务将保存到 返回堆栈,以便用户可以反转事务并返回 按“上一步”按钮可查看上一个片段。“


首先,覆盖反压以转到片段所在的活动:-

@Override
public void onBackPressed()
{

    Intent intent = new Intent(CurrentActivity.this,ActivityYouLikeToGo.class);

    intent.putExtra("Check",1);
    startActivity(intent);
}
然后转到ActivityYouLikeToGo.java文件,在onCreate中执行以下操作:-

Intent intent = getIntent();
String s1 = intent.getStringExtra("Check");

if(s1.equals("1"))
  {
s1 = "";
Fragment fragment = new YOURFRAMENTNAME();
if (fragment != null) {
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.frame_container, fragment).commit();
  }
}
如果我想返回到一个活动到另一个活动,我会覆盖它 按back键并使用intent调用该Activity


通常,如果你想回去,你不必做什么。按下设备的“硬件后退”按钮将带您进入上一个活动,相应的选项卡已打开。

您可以使用startActivityForResult()启动导航到的活动,然后在返回到上一个活动时设置结果。在要返回的活动中,根据结果代码显示片段。您可以通过隐藏所有不想显示的片段来完成此任务。即使您要从另一个片段转到另一个活动,这也可以工作

viewPager.setCurrentItem(tabPosition);

这个解决方案为我创造了奇迹。

在您从片段开始的活动中,您可以执行以下操作:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //do whatever you want here
        finish();
        return true;
    }
这对我很有用:)

最简单的方法:

@Override
onBackPressed(){
finish();
}

这段代码适用于我的情况。我只是对按钮做了一个Onclick方法。代码如下:我在按钮中创建了onclick方法clickForFriends,Id是backFriendsList,我使用android.support.v4.app.Fragment类。此方法应该从新活动中提取到启动活动的片段,并且此方法应该在onCreate方法之后的活动中

 public void clickedForFriends(View v){
    if (v.getId() == R.id.backFriendsList){
       onBackPressed();
    }
}

当你从一个碎片开始一项活动时,碎片从未被杀死, 您只需通过finish()终止当前活动即可返回片段;, 这就像从一个片段中打开一个活动并按下后退按钮一样 您跳转到片段而没有丢失数据。


如果该片段中有操作栏,则可以在包含类似方法的活动中检查
onBackPressed()
上的操作栏标题。

在你的on
BackPressed(…)
中,你需要
替换
重新附加
你以前的
片段
我有相同的想法,但不知道如何做。。请分享一些代码示例..显示Arnab答案如下您说的对,但这将帮助我不从堆栈中删除活动。从任何活动中按onBackpressing都会从Stack中删除该活动,这是正确的,我相信它应该是这样的。但是,如果出于某些原因您不希望出现这种行为,那么您可以使用
viewPager.setCurrentItem(tabPosition)
打开已打开特定选项卡的活动。因此,您可以在
onBackPressed()
中设置一些标志,在活动中检查它,如果设置了标志,则显示相应的选项卡。活动X是我的播放器。我还想保持它的seekbar状态。所以,为了做到这一点,我必须找到一种方法,从活动中返回片段,而不从堆栈中删除它。很高兴为您提供帮助。如果答案对你有用,请接受:尽管这个代码片段可以解决这个问题,包括对代码的解释确实有助于提高你文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性!我认为addToBackStack()可以在碎片之间移动。当从一个碎片回到另一个碎片时/
@Override
public void onBackPressed() {
  //Here "digiM" is an Actionbar Title
    if(getTitle().equals("digiM") || getSupportActionBar().getTitle().equals("digiM"))
    {
        //reload the activity if you want to open it again as your need
        Intent intent = new Intent(Your_Current_Activity.this,Your_Current_Activity.class);
        startActivity(intent);
    }
}