#android #tabactivity
#Android #tabactivity
Вопрос:
У меня есть TabActivity, который показывает другие действия в качестве содержимого, в зависимости от того, какая вкладка выбрана. Что я хочу сделать, так это из «родительского» действия попытаться зафиксировать нажатие обратной клавиши, но ни onKeyDown (), ни onBackPressed () никогда не вызываются в родительском… это обрабатывается «дочерними» действиями. Есть ли какой-либо способ передать его в «родительское» действие?
Ответ №1:
Почему бы просто не использовать из дочернего действия:
@Override
public void onBackPressed () {
this.getParent().onBackPressed();
}
Комментарии:
1. Мне не нравится вызывать его от каждого дочернего элемента, но это работает нормально. Спасибо.
Ответ №2:
Вы могли бы настроить процедуру связи между TabActivity и его дочерними элементами.
Я создал статический обработчик в TabActivity, который был инициализирован при onCreate TabActivity.
Затем я создал статический метод getHandler() (в TabActivity ).
Теперь фрагмент для ответа на ваш вопрос для ваших дочерних элементов будет:
@Override
public void onBackPressed () {
MyTabActivity.getHandler().sendEmptyMessage(MyTabActivity.BACK_PRESSED);
}
Комментарии:
1. решение @ShadowCloud также подходит.
Ответ №3:
Я также столкнулся с той же проблемой. Я сделал это таким образом:
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
//things u want to do when back key pressed
}
return super.dispatchKeyEvent(event);
}