[英]Navigate the back button to another activity Xamarin C#
NoHistory=true
屬性標志實際上用於操作欄上的“向上”按鈕。 有關更多信息,請參見此處。
您想要做的是覆蓋后退按鈕的行為。 您在這里可以做的是
Activitiy1:
public override void OnBackPressed()
{
var intent = new Intent(this, typeof(MainActivity));
StartActivity(intent);
//base.OnBackPressed(); -> DO NOT CALL THIS LINE OR WILL NAVIGATE BACK
}
一旦在前台活動上按下后退按鈕,就會觸發此方法。 通過注釋掉(或不調用) base.OnBackPressed();
將阻止該活動返回,您可以啟動新活動,即MainActivity
。
現在,如果您的層次結構實際上不同於您所說的, MainActivity
本質上是您的root
活動,並且您是按順序啟動其他活動的,則按后退按鈕可將您返回到Main活動,您可以采用類似的方法,但是將需要一些其他標志。 對於此實例,您可能對FLAG_ACTIVITY_CLEAR_TOP
或Xamarin術語ActivityFlags.ClearTop
感興趣。
如果已設置,並且正在啟動的活動已經在當前任務中運行,那么與其啟動該活動的新實例,不如關閉該活動之上的所有其他活動,並將此Intent傳遞給(現在頂部)將舊活動作為新的Intent。
例如,考慮一個由以下活動組成的任務:A,B,C,D。如果D調用具有解析為活動B組件的Intent的startActivity(),則C和D將完成,並且B接收給定的Intent ,導致堆棧現在為:A,B。
現在,實現與添加的意圖標志幾乎相同。
public override void OnBackPressed()
{
var intent = new Intent(this, typeof(MainActivity));
intent.AddFlags(ActivityFlags.ClearTop);
StartActivity(intent);
//base.OnBackPressed(); -> DO NOT CALL THIS LINE OR WILL NAVIGATE BACK
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.