2014-10-07 1 views
0

Я делаю этот проект, где у меня есть 3 фиксированных вкладки в моей MainActivity. На вкладках 2 и 3 у меня есть кнопки, которые будут перемещать пользователя в новую активность фрагмента. В действиях фрагмента я использовал ActionBar.setDisplayHomeAsUpEnabled (true). Моя проблема заключается в том, что я хочу вернуть пользователя к предыдущему фрагменту (который теперь выполняется с помощью кнопки «вверх» на панели действий и с помощью кнопки «Назад»), но я хочу, чтобы пользователь заходил на вкладку, в которой они были раньше. Когда я использую кнопку «Назад», чтобы перейти вверх, я перейду на вкладку, откуда я начал новый фрагмент. Но когда я использую upIntent в панели действий, я получаю вкладку 1. Как я могу это решить?Получить ActionBar upIntent, чтобы действовать как кнопка возврата

Это мой код из действий фрагмента, в котором находятся кнопки панели действий upIntent.

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      Intent upIntent = new Intent(this, MainActivity.class); 
      if (NavUtils.shouldUpRecreateTask(this, upIntent)) { 
       TaskStackBuilder.from(this) 
         // If there are ancestor activities, they should be added here. 
         .addNextIntent(upIntent) 
         .startActivities(); 
       finish(); 
      } else { 
       NavUtils.navigateUpTo(this, upIntent); 
      } 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

ответ

0

Так что мне удалось найти решение этого вопроса. Я изменил на onOptionsItemSelected boolean на это:

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     ClassName.this.finish(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
Смежные вопросы