2016-09-02 4 views
-2

Я использую действие навигационного ящика Google по умолчанию. в меню ящика добавлены добавленные пункты меню, которые при нажатии открывают другие действия (а не как фрагменты). Эти действия имеют MainActivity как родительский, у которого есть ящик. Операции имеют кнопку «Назад» на панели инструментов. Когда эта кнопка назад нажата, приложение просто возвращается к mainactivity с закрытым ящиком. Как я могу открыть ящик при нажатии кнопки «Назад» в дочерних действиях.Как открыть ящик при нажатии кнопки

Я знаю, что это можно легко решить, если другие действия будут фрагментами, но это не то, что я собираюсь сделать.

+1

Обычно ** кнопка ** ** используется как кнопка BACK. Открытие навигационного ящика, щелкнув его, не является обычным андроидным UX. Ваши пользователи не будут рады! –

ответ

0

Вы можете ovveride onBackPressed() внутри деятельности (ы), чей родитель является MainActivity. И передать значение, используя пару ключей значение и проверьте данные внутри OnCreate в MainActivity используя связку, а затем OpenDrawer внутри MainActivity следующим

Внутри вас ChildActivity

@Override 
public void onBackPressed() { 
    Intent intent = new Intent(ChildActivity.this, MainActivity.class); 
    intent.putExtra("openDrawer", true); 
    startActivity(intent); 
    super.onBackPressed(); 
} 

А потом в OnCreate из MainActivty.class

private boolean openDrawer = false; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState) 

    Bundle bundle = getIntent.getExtras(); 
    if(bundle != null) { 
     openDrawer = bundle.getBoolean("openDrawer"); 
    } 

    if (!openDrawer) { 
     // Do other stuff and don't open drawer 
    } else { 
     //Open drawer login goes here 
    } 
} 
+0

Я получаю сообщение об ошибке с пакетом Bundle = getIntent.getExtras; – mpanga

+0

Можете ли вы разместить логарифм в своем вопросе? –