Я создаю приложение для ОС Android и сталкиваюсь с небольшим камнем преткновения в одном вопросе. Вот что я хочу сделать:
В настоящее время я прекрасно фиксирую событие кнопки «Назад», но мне нужно, чтобы он вел себя немного иначе, в зависимости от текущего макета, который просматривает пользователь. У меня есть четыре макета, которые я использую, и если пользователь находится на макете 1, 2 или 3, я хочу, чтобы «Назад» перевел их на макет 1; но если они находятся в макете 4, я хочу, чтобы они вернулись к макету 3.
Проблема в том, что я не могу на всю жизнь выяснить код, который будет возвращать идентификатор макета CURRENT. Я уверен, что это довольно простая проблема, поэтому я надеюсь, что у кого-то будет быстрое решение.
Спасибо за указатели - по какой-то причине у меня возникают проблемы с работой getCurrentFocus (), хотя ... возможно, из-за моей неумелости в программировании на Java.
Я разбил его на следующее:
View thisView = getCurrentFocus();
if (thisView != null){
int viewID = thisView.getId();
toastLong(Integer.toString(viewID));
} else {
toastLong("thisView is null.");
}
Проблема теперь в том, что thisView всегда нулевой - он не возвращает никаких значений. Я попытался ввести имя действия, которое я использую, вместо myActivity (делая его:
View thisView = myActivityName.getCurrentFocus();
но IDE выдает следующую ошибку и не компилируется:
Невозможно сделать статическую ссылку на нестатический метод getCurrentFocus из типа Activity.
Я явно что-то упускаю, и я предполагаю, что это что-то очень простое, что я упускаю. Есть указатели?