如何退出應用程序,只要我按某個片段的後退按鈕。我發現system.exit(1)關閉了應用程序。但我現在可以重寫處理返回鍵的方法。是否有任何方法來重置返回鍵?如果是的話我該如何執行它?在android中的片段類中重寫back方法
回答
我用下面的方法解決了它。
- 首先用靜態整型變量(比如說a)創建一個類。
- 覆蓋mainActivity上的back方法,並根據靜態變量的值選擇想要打開的片段。 [注:每當新片段被打開更新的靜態變量,新的價值,並根據這個值來覆蓋回到主要活動方法]
onBackPressed()函數中的活動將有助於
這應該是在評論 –
我cannnot能夠評論 –
謝謝你的答案,但我只有一個活動和約7片段,我只需要從1片段退出... –
你應該做的,就是當你添加一個片段添加與它的標籤,像
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()
感謝您的回答。但我在第1行顯示無法轉換的類型時遇到了錯誤。我已經假設在上面的代碼中的MyFragment意味着應該重寫在後面的片段... –
@YogeshGautam我不知道你的代碼,但你在評論中共享的,我建議改變你的片段MyFragment –
@YogeshGautam chechk更新的答案 –
寫這個
if (fragmentManager.getBackStackEntryCount() == 1) {
if (isPressed) {
finish();
} else {
StringUtils.displayToastShort(this, "press again to exit");
isPressed = true;
}
}
試試這個功能打開一個片段
public void openFragment(Fragment fragment)
{
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container,fragment);
fragmentTransaction.commit();
}
,當你想打開一個片段呼叫這樣
openFragment(new AddFriends());
此功能
使用上述功能,它將通過後退按鈕退出應用程序。
- 1. 如何覆蓋在android sherlock片段中按下的back鍵
- 2. 如何重寫片段中的onCreateDialog方法
- 3. 片段中的Android活動方法
- 4. 型片段的方法,必須重寫或實現超方法
- 5. AppCompatActivity類中的Android片段
- 6. 無法添加到片段Back Stack
- 7. 在Ruby中重寫類方法
- 8. 在resharper C++中重寫基類方法
- 9. 在android中的一個片段中包含兩個片段的方法
- 10. 在段類中使用雙重方法
- 11. 在android中訪問重寫方法的參數的子方法?
- 12. 重寫android中的原生方法
- 13. 匿名類中的重寫方法
- 14. 重寫scala中的case類方法
- 15. 重寫hashCode方法在類
- 16. 重寫Sublime Text中的片段
- 17. 重寫setArguments()在片段
- 18. Android Studio片段 - onButtonPressed方法
- 19. 片段在android中重疊另一個
- 20. 在Android中重新使用片段
- 21. 重寫父類的方法
- 22. 在超類的子類中重寫的調用方法
- 23. 如何在子類中重寫一個超類方法使重寫的方法,以通過型超類
- 24. WebView中的onOptionsItemSelected菜單中的「forward」和「back」在Android中的方法是什麼?
- 25. Android:如何調用包含在XML中的片段的方法?
- 26. Android的錯誤:(20,8)錯誤:片段不抽象,不重寫抽象方法
- 27. Javascript中的重寫方法
- 28. 重寫方法中的值
- 29. 如何限制在C#中重寫父類方法的子類?
- 30. C++使基類在子類中使用重寫的方法
沒有,但你可以做的是在活動覆蓋onBack和,使病情相應 –
實際上,我有大約7個片段,所有1活動下,我只需要退出1片段類的應用程序.. –
您正在使用標籤?在活動?? –