我遇到一個問題,我的兩個活動都在每個活動上都有一個聯繫人按鈕,點擊後它會爲聯繫活動啓動一個新的意圖。看到我只能通過清單將父類設置爲這兩個活動之一,導入聯繫活動時的導航將始終將用戶返回給定義的父活動。我希望它基本上返回到打開它的活動,我想這基本上會使它們成爲父項?覆蓋向上導航
我的猜測是從Manifest中刪除父項,並以某種方式通過編程方式覆蓋/添加僅點擊聯繫活動時調用finish()的導航?
任何幫助將不勝感激,謝謝!
我遇到一個問題,我的兩個活動都在每個活動上都有一個聯繫人按鈕,點擊後它會爲聯繫活動啓動一個新的意圖。看到我只能通過清單將父類設置爲這兩個活動之一,導入聯繫活動時的導航將始終將用戶返回給定義的父活動。我希望它基本上返回到打開它的活動,我想這基本上會使它們成爲父項?覆蓋向上導航
我的猜測是從Manifest中刪除父項,並以某種方式通過編程方式覆蓋/添加僅點擊聯繫活動時調用finish()的導航?
任何幫助將不勝感激,謝謝!
您需要重寫onOptionsItemSelected並像下面那樣處理向上導航。最佳做法是重寫BaseActivity並從您的自定義活動中擴展BaseActivity。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home: {
finish();
return true; // make sure to return true here.
}
}
return super.onOptionsItemSelected(item);
}
不起作用,仍然崩潰,但當我在一個按鈕上完成(),它的工作原理......奇怪? Up導航仍然必須執行除finish()之外的其他內容;或者生命週期必須不同? – user3460562
不,這應該起作用。發佈您的崩潰日誌 – Libin
對不起現在工作,忘記了返回真實;爲什麼我會使用return true;而不是休息; – user3460562
發佈你的代碼你試過了什麼?假設您有活動A,B和聯繫活動。您想從A和B打開ContactActivity,然後..我不清楚您的要求 – Libin
而且我希望Contact中的向上導航返回到A或B,具體取決於最初觸發該意圖的方式。 – user3460562
沒有太多的代碼在後面,只需通過Manifest將活動A設置爲活動A,因此向上導航總是從ContactActivity返回到活動A.很明顯,設置父母並不是一種好的做法,因爲我希望向上導航返回到活動A或活動B,具體取決於最初打開「聯繫活動」。 – user3460562