Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
 Аватар для danek130995
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137

Не получается обработать нажатие на кнопку Home в ActionBar

18.10.2015, 11:54. Показов 1974. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в OnCreate прописал:
Java
1
2
  ActionBar actionbar= getSupportActionBar();
        actionbar.setDisplayHomeAsUpEnabled(true);
Теперь хочу поймать нажатие в
Java
1
2
3
4
5
6
7
 public boolean onOptionsItemSelected (MenuItem item){
        Toast.makeText(this, item.getItemId(), Toast.LENGTH_LONG);// - не работает
 
     if (item.getItemId()==android.R.id.home)//тоже не работает
         Toast.makeText(this, "Bax", Toast.LENGTH_LONG);
        return super.onOptionsItemSelected(item);
    }
В чем может быть дело? Помогите пожалуйста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.10.2015, 11:54
Ответы с готовыми решениями:

Заблокировать долгое нажатие на кнопку HOME
Здравствуйте! Как заблокировать долгое нажатие на кнопку HOME в своем приложении? P.S. Android 4.2.2 На версиях 5.0+ меню недавних...

Как обработать нажатие на кнопку?
В диалоговом окне я создала кнопку "ОК". Нажав на нее должно закрыться диалоговое окно (так и происходит) и в главном окне должно что-то...

Как сделать что при нажатие на кнопку "Home" вылпжила моя программа
Сябка ваша ))

8
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
18.10.2015, 14:54
Лучший ответ Сообщение было отмечено danek130995 как решение

Решение

danek130995, нужно в конце добавить show().

Java
1
Toast.makeText(this, "Bax", Toast.LENGTH_LONG).show();
1
 Аватар для danek130995
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
18.10.2015, 16:01  [ТС]
fraley, ой, вот ведь позорная ошибка.. почему-то не дописал, наверное устал. Спасибо!

Добавлено через 5 минут
fraley, кое-что все же не работает:
Java
1
2
 if (item.getItemId()==R.string.item2)
            Toast.makeText(this, "Call", Toast.LENGTH_LONG).show();
Хотя ресурс данный есть и в xml в menu_main прописано:
XML
1
2
3
4
5
6
  <item
        android:id="@+id/item2"
        android:icon="@android:drawable/ic_menu_call"
        P1071_ActionBarItems:showAsAction="always"
        android:title="@string/item2">
    </item>
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
18.10.2015, 16:23
Лучший ответ Сообщение было отмечено danek130995 как решение

Решение

Я так думаю что в Java коде должно быть так:

Java
1
2
 if (item.getItemId()==R.id.item2)
            Toast.makeText(this, "Call", Toast.LENGTH_LONG).show();
id вместо string.
1
 Аватар для danek130995
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
18.10.2015, 18:08  [ТС]
fraley, да, Вы правы, работает. Тогда в чем смысл R.string.item2? В чем разница между R.id.item2 и R.string.item2? Оба все равно возвращают некий id
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
18.10.2015, 18:27
Лучший ответ Сообщение было отмечено danek130995 как решение

Решение

Я в объяснениях не силен, но... id это и есть id, по нему можно находить элемент.
В вашем случае вы же сами присвоили этот id элементу.
android:id="@+id/item2"
string же это строка, которую опять же вы прописали в файле string.xml чтоб потом использовать по вашему усмотрению, как... строка)))
1
 Аватар для danek130995
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
18.10.2015, 20:58  [ТС]
fraley, я понимаю, что это строка) Но ведь пространство имен R содержит integer и для строки и для id.
Цитата Сообщение от danek130995 Посмотреть сообщение
Оба все равно возвращают некий id
Я ошибся, я имел ввиду, что они возвращают int.

По скриншоту видно, что типы не соответствуют, т.е. я получаю не String, а Int. А как мне получить ресурс в String?
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
21.10.2015, 09:48
Лучший ответ Сообщение было отмечено danek130995 как решение

Решение

danek130995,
Java
1
context.getResource().get*(R.*.**);
Где во втором гете вместе звездочки тип ресурса: String, Drawable и т.д.. Все R.*.* это int'ы, они просто содержат ид ресурсов.
1
 Аватар для danek130995
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
21.10.2015, 15:32  [ТС]
Spelcrawler, да, точно, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.10.2015, 15:32
Помогаю со студенческими работами здесь

Обработать нажатие на кнопку "Свернуть" в окне
господа на шапки окна есть три кнопки(свернуть,развернуть,закрыть),так вот на первый взгляд казалось бы пустиковая задача,но не могу найти...

Нажатие на элемент меню в Actionbar
Доброго дня! Приделал через appbar actionbar к активити. Вот xml: &lt;android.support.design.widget.AppBarLayout ...

Сменна иконки на ActionBar при её нажатие
Здравствуйте! У меня на ActionBar должна быть иконка для включения и отключения звука в приложении. Тоисть при нажатии на иконку она...

Смена темы ActionBar при нажатии на кнопку
Подскажите пожалуйста как можно изменить тему ActionBar, при нажатии на кнопку.

Отловить нажатие кнопки Home
Всем привет! Как отловить нажатие кнопки Home. В onKeyDown не получается.... Какие ещё варианты?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru