在Fragment

时间:2016-10-11 09:04:39

标签: android android-fragments onbackpressed

我有4个片段。它们包括HomeFragment,Rainfall,rainday和yieldFragment。 如果现在我正在降雨片段,那么我按后退按钮, 我希望片段将返回Home片段(默认情况下)。 但是现在我的应用情况是按下后退键, 申请已经结束。我已尝试使用onBackpressed,但我认为我的onBackPressed无法正常工作。

我应该为这种情况做些什么..?任何人都可以回答。 我试过这个......

  public void onBackPressed() {

        fragment=new HomeFragment();}

如果有人知道,请帮帮我。

2 个答案:

答案 0 :(得分:0)

  • 首先在切换到片段时,使用 #replace 而不是 #add 来自容器活动的新片段。
  • #inner片段中第二个
  • ,如图所示覆盖onResume() 下面。它会给你回叫设备后退按钮。

    @覆盖     public void onResume(){

    (define (product . args)                                                             
       (if (null? args)                                                                   
           (list '())                                                                     
           (apply append                                                                  
                  (map (lambda (rest)                                                    
                        (map (lambda (first)                                             
                                (cons first rest))                                       
                              (car args)))                                               
                      (apply product (cdr args))))))
    

答案 1 :(得分:0)

将片段事务添加到后台堆栈,如下所示:

getSupportFragmentManager().beginTransaction()
           .replace(R.id.your_fragment_id, RainfallFragment())
           .addToBackStack(null)
           .commit()

如果您正在扩展AppCompatActivity并使用最新版本的支持库,则无需执行任何其他操作。但如果情况并非如此,请在您的活动中覆盖onBackPressed():

@Override
public void onBackPressed() {
     if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
           getSupportFragmentManager().popBackStack();
     } else {
           finish();
     }
}