2014-09-29 76 views
1

對於我的Android應用中的選項菜單,我有偏好活動。 我已經在ActionBar上啓用了Up \ Back導航,我需要回到之前稱爲「選項」菜單的活動。 對於偏好活動,我可以在清單中使用:在「首選項」菜單中對於Android上後導航的動態父活動

機器人:parentActivityName =「mypackage.com.MainActivity」

但如何回來等活動比較?選項菜單從4個不同的活動中調用。

public class Prefs extends PreferenceActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preferences); 


    ActionBar actionBar = getActionBar(); 
    // Enabling Up/Back navigation 
    actionBar.setDisplayHomeAsUpEnabled(true); 


} 

}

回答

0

這樣解決:

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case android.R.id.home: 
       finish(); 

     } 
     return true; 

    } 
+0

這不會從當前任務導航了。這只是關閉當前的活動 – 2014-09-29 14:34:11

0

後退按鈕的默認行爲是,它會帶你回調用活動。系統在用戶導航應用程序時維護一系列活動。你需要重寫這個功能嗎?請更具體一些。

+0

是的,但我需要告訴動作條的後退按鈕返回到調用活動(如物理設備的後退鍵) – andreasperelli 2014-09-29 13:53:19

1

確保您已聲明在這樣的清單父活動...

<activity 
      android:name="com.myapp.SetPreferenceActivity" 
      android:parentActivityName="com.myapp.MainActivity" 
      > 

,然後確保的情況下添加到您的onOptionsItemSelected方法...

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     // Respond to the action bar's Up/Home button 
     case android.R.id.home: 
      //Take me back to the main activity 
      NavUtils.navigateUpFromSameTask(this); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

如果您希望將向上按鈕指向自定義acti vity,你可以使用一個意圖。

@Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      switch (item.getItemId()) { 
      // Respond to the action bar's Up/Home button 
      case android.R.id.home: 
       Intent changeActivity = new Intent(this,OtherActivity.class); 
     startActivity(changeActivity); 

       return true; 
      } 
      return super.onOptionsItemSelected(item); 
     } 
+0

我不想總是返回MainActivity。如果我從SomeActivity.class調用菜單,我想回到SomeActivity.class ...如果我從OtherActivity.class調用菜單,我想回到OtherActivity.class – andreasperelli 2014-09-29 14:45:52

+0

我編輯了我的答案,包括使用意向去選擇一個自定義活動的選項 – 2014-09-29 14:53:01

+0

我需要在運行時知道我來自的活動,以返回到名爲Menu的活動 – andreasperelli 2014-09-29 15:11:22