Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
#1

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

18.10.2015, 11:54. Просмотров 713. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2015, 11:54
Ответы с готовыми решениями:

Заблокировать долгое нажатие на кнопку HOME
Здравствуйте! Как заблокировать долгое нажатие на кнопку HOME в своем...

Нажатие на элемент меню в Actionbar
Доброго дня! Приделал через appbar actionbar к активити. Вот xml: ...

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

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

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

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

Решение

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

Java
1
Toast.makeText(this, "Bax", Toast.LENGTH_LONG).show();
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
18.10.2015, 16:01  [ТС] #3
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
fraley
110 / 110 / 43
Регистрация: 24.05.2015
Сообщений: 329
18.10.2015, 16:23 #4
Лучший ответ Сообщение было отмечено danek130995 как решение

Решение

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

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

Решение

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

По скриншоту видно, что типы не соответствуют, т.е. я получаю не String, а Int. А как мне получить ресурс в String?
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
21.10.2015, 09:48 #8
Лучший ответ Сообщение было отмечено danek130995 как решение

Решение

danek130995,
Java
1
context.getResource().get*(R.*.**);
Где во втором гете вместе звездочки тип ресурса: String, Drawable и т.д.. Все R.*.* это int'ы, они просто содержат ид ресурсов.
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
21.10.2015, 15:32  [ТС] #9
Spelcrawler, да, точно, спасибо!
0
21.10.2015, 15:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2015, 15:32

Обработать нажатие на кнопки в уведомлении
Еще раз здравствуйте. Дело такое. Есть уведомление, в нем две кнопки. Они...

Как обработать нажатие на ImageView?
Ребят, не пойму в чем ошибка, как обработать нажатие на картинку? public...

Как обработать нажатие ImageView
Создаю программу на Андроиде. И сразу столкнулся с проблемой. Почему то не...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru