2017-05-29 19 views
-1

如何退出應用程序,只要我按某個片段的後退按鈕。我發現system.exit(1)關閉了應用程序。但我現在可以重寫處理返回鍵的方法。是否有任何方法來重置返回鍵?如果是的話我該如何執行它?在android中的片段類中重寫back方法

+0

沒有,但你可以做的是在活動覆蓋onBack和,使病情相應 –

+0

實際上,我有大約7個片段,所有1活動下,我只需要退出1片段類的應用程序.. –

+0

您正在使用標籤?在活動?? –

回答

0

我用下面的方法解決了它。

  1. 首先用靜態整型變量(比如說a)創建一個類。
  2. 覆蓋mainActivity上的back方法,並根據靜態變量的值選擇想要打開的片段。 [注:每當新片段被打開更新的靜態變量,新的價值,並根據這個值來覆蓋回到主要活動方法]
0

onBackPressed()函數中的活動將有助於

+0

這應該是在評論 –

+0

我cannnot能夠評論 –

+0

謝謝你的答案,但我只有一個活動和約7片段,我只需要從1片段退出... –

0

你應該做的,就是當你添加一個片段添加與它的標籤,像

fragmentTransaction.replace(android.R.id.content, fragment, "My_Tag"); 

然後在活動onBackPressed()

fragment= (AddFriends)getFragmentManager().findFragmentByTag("My_Tag"); 
if (fragment!= null && fragment.isVisible()) { 
    //Exit from your app here 
    finish(); 
} 

希望這可以幫助你。在onBackPressed()

+0

感謝您的回答。但我在第1行顯示無法轉換的類型時遇到了錯誤。我已經假設在上面的代碼中的MyFragment意味着應該重寫在後面的片段... –

+0

@YogeshGautam我不知道你的代碼,但你在評論中共享的,我建議改變你的片段MyFragment –

+0

@YogeshGautam chechk更新的答案 –

0

寫這個

if (fragmentManager.getBackStackEntryCount() == 1) { 
     if (isPressed) { 
      finish(); 
     } else { 
      StringUtils.displayToastShort(this, "press again to exit"); 
      isPressed = true; 
     } 
} 
0

試試這個功能打開一個片段

public void openFragment(Fragment fragment) 
{ 

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransac‌​tion(); 

fragmentTransaction.replace(R.id.fragment_container,fragment); 

fragmentTransaction.commit(); 

} 

,當你想打開一個片段呼叫這樣

openFragment(new AddFriends()); 
此功能

使用上述功能,它將通過後退按鈕退出應用程序。