2014-03-25 120 views
0

我遇到一個問題,我的兩個活動都在每個活動上都有一個聯繫人按鈕,點擊後它會爲聯繫活動啓動一個新的意圖。看到我只能通過清單將父類設置爲這兩個活動之一,導入聯繫活動時的導航將始終將用戶返回給定義的父活動。我希望它基本上返回到打開它的活動,我想這基本上會使它們成爲父項?覆蓋向上導航

我的猜測是從Manifest中刪除父項,並以某種方式通過編程方式覆蓋/添加僅點擊聯繫活動時調用finish()的導航?

任何幫助將不勝感激,謝謝!

+0

發佈你的代碼你試過了什麼?假設您有活動A,B和聯繫活動。您想從A和B打開ContactActivity,然後..我不清楚您的要求 – Libin

+0

而且我希望Contact中的向上導航返回到A或B,具體取決於最初觸發該意圖的方式。 – user3460562

+0

沒有太多的代碼在後面,只需通過Manifest將活動A設置爲活動A,因此向上導航總是從ContactActivity返回到活動A.很明顯,設置父母並不是一種好的做法,因爲我希望向上導航返回到活動A或活動B,具體取決於最初打開「聯繫活動」。 – user3460562

回答

0

您需要重寫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); 
} 
+0

不起作用,仍然崩潰,但當我在一個按鈕上完成(),它的工作原理......奇怪? Up導航仍然必須執行除finish()之外的其他內容;或者生命週期必須不同? – user3460562

+0

不,這應該起作用。發佈您的崩潰日誌 – Libin

+0

對不起現在工作,忘記了返回真實;爲什麼我會使用return true;而不是休息; – user3460562