2014-02-07 3 views
0

Я реализую навигацию в своей панели действий со стрелкой «назад». я делал это следующим образом:Навигация с иконкой приложения

ActionBar actionBar = getSupportActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 

и объявить parentactivity в манифесте вручную. Проблема заключается в том, что в моем приложении для некоторых видов деятельности возможно много маршрутов к цели назначения.

Я исследовал этот http://developer.android.com/guide/topics/ui/actionbar.html#Home

и процитировать

Или переопределить getSupportParentActivityIntent() и onCreateSupportNavigateUpTaskStack() в вашей деятельности. Это , когда родительская активность может отличаться в зависимости от того, как пользователь пришел на текущий экран. То есть, если есть много путей , которые пользователь мог принять для достижения текущего экрана, кнопка Up должна перемещаться назад по пути, на который пользователь фактически отправил , чтобы добраться туда.

Системные вызовы getSupportParentActivityIntent(), когда пользователь нажимает кнопку «Вверх» во время навигации по вашему приложению (в своей задаче вашего приложения). Если активность, открытая при навигации, отличается в зависимости от того, как пользователь прибыл в текущее местоположение, то вы должны переопределить этот метод , чтобы вернуть намерение, которое запускает соответствующее родительское действие .

Единственная проблема заключается в том, что я не знаю, как ее переопределить, чтобы получить текущую родительскую активность. Кто-нибудь использовал это раньше? Я был бы признателен за советы

Если бы кто-нибудь мог помочь мне в этом, я бы очень признателен, я не так рекомендую использовать его как кнопку возврата. Я просто пытаюсь перезаписать кнопку вверх.

ответ

1

О ... для тех, кто, возможно, потребуется более полезный ответ, чем те, которые предусмотрены ... вот что я сделал

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    switch (item.getItemId()){ 
     case android.R.id.home: 
      finish(); 
      overridePendingTransition(R.animator.close_slide_in, R.animator.close_slide_out); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

так и в случае android.r.id.home, что это где вы выполняете необходимые действия. В моем случае я просто хотел, чтобы закончить текущую активность

Я надеюсь, что некоторые используют для кого-то там

0

В соответствии с Android guidelines вы не должны каждый раз, когда кнопка вверх ведет себя по-разному. Так работает кнопка «Назад».

+0

спасибо, что не то, что я просил ... согласно http://developer.android.com /guide/topics/ui/actionbar.html#Домой вы можете ехать ... как я объяснил в своем вопросе, это для меня не выгодно ... спасибо. –

Смежные вопросы