Android 在非活动类中控制后退按钮?
我有一个带有片段的Actionbar应用程序和一个Android 在非活动类中控制后退按钮?,android,android-fragments,fragment,back-button,Android,Android Fragments,Fragment,Back Button,我有一个带有片段的Actionbar应用程序和一个TabFragment extends Fragment类,我在其中自定义片段的功能 我希望能够控制后退按钮的功能 @Overriding onBackPressed() 因为我没有参加活动,所以不能工作, 也不会 我的目标是在基于布尔变量的真/假值按下back键时隐藏一些特定视图。有没有关于如何操作此功能的建议?谢谢 我遇到了与您相同的问题,但我意识到您必须在运行片段的活动中处理后退按钮。您需要覆盖活动代码中的onBackPressed()
TabFragment extends Fragment
类,我在其中自定义片段的功能
我希望能够控制后退按钮的功能
@Overriding onBackPressed()
因为我没有参加活动,所以不能工作,
也不会
我的目标是在基于布尔变量的真/假值按下back键时隐藏一些特定视图。有没有关于如何操作此功能的建议?谢谢
我遇到了与您相同的问题,但我意识到您必须在运行片段的活动中处理后退按钮。您需要覆盖活动代码中的
onBackPressed()
,而不是片段代码中的。然后,您可以检查哪个片段是可见的,并根据需要执行相应的操作。
此代码在我的活动中:
@Override
public void onBackPressed()
{
try
{
final LiveWorkFragment liveFragment = (LiveWorkFragment)getFragmentManager().findFragmentByTag("live_work");//LiveWorkFragment is a fragment
final NonLiveWorkFragment nonLiveFragment = (NonLiveWorkFragment)getFragmentManager().findFragmentByTag("non_live");//NonLiveWorkFragment is a fragment
final SignatureFragment signatureFragment = (SignatureFragment)getFragmentManager().findFragmentByTag("signature");//this is a Fragment too
if(liveFragment == null && nonLiveFragment == null && signatureFragment == null)
{
super.onBackPressed();
}
if(liveFragment != null)
{
if (liveFragment.isVisible())
{
//do what you want
}
}
}
}
在活动的onBackPress中,检查哪个片段是可见的,并相应地执行所需的操作。
@Override
public void onBackPressed()
{
try
{
final LiveWorkFragment liveFragment = (LiveWorkFragment)getFragmentManager().findFragmentByTag("live_work");//LiveWorkFragment is a fragment
final NonLiveWorkFragment nonLiveFragment = (NonLiveWorkFragment)getFragmentManager().findFragmentByTag("non_live");//NonLiveWorkFragment is a fragment
final SignatureFragment signatureFragment = (SignatureFragment)getFragmentManager().findFragmentByTag("signature");//this is a Fragment too
if(liveFragment == null && nonLiveFragment == null && signatureFragment == null)
{
super.onBackPressed();
}
if(liveFragment != null)
{
if (liveFragment.isVisible())
{
//do what you want
}
}
}
}