Помогите советом. приложение в ActionBar выводиться иконка с "Блутусом" При запуске приложение проверяет включен ли блютус или нет если включен то выводит иконку ВКЛЮЧЕН блутус если нет то выводит ВЫКЛЮЧЕН блютус
если блютус ВЫКЛЮЧЕН по нажатию на иконку он включается и иконка должна поменять свой вид
у меня есть 3 процедуры
Инициализирую ActionBar + отсылаю запрос в процедуру /BT_icon_actionBar(this);/ на проверку включен ли БТ или нет
//инициализируем меню актин бар с кнопкой блутус
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.action_bar_menu, menu);
//должны понять включен ли блютус на устройстве или нет от этого вывести иконку
BT_icon_actionBar(this);
//должны понять включен ли блютус на устройстве или нет от этого вывести иконку
return true;
}
//инициализируем меню актин бар с кнопкой блутус
проверяю в др. процедуре /bluetooth_enb_dsbl.Bl_ebl_dsbl/ включен или нет (возвращает 1 или 0) и рисую от этого иконку если в процедуре 1 и 2 заменить отсылаемый параметр на /menu/ то работает но!
//рисуем иконки в актион бар
//public void BT_icon_actionBar(Menu menu) {
public void BT_icon_actionBar(Context appContext) {
MenuItem feed = menu.findItem(R.id.menu_bluetooth);
if (bluetooth_enb_dsbl.Bl_ebl_dsbl(this) == 0) {
feed.setIcon(R.drawable.ic_action_bar_bluetooth_disabled);
} else {
feed.setIcon(R.drawable.ic_action_bar_bluetooth_enabled);
}
}
//рисуем иконки в актион бар
3 процедура обработки кнопок меню - и если я в эту процедуру отсылаю параметр menu то он не к чему не привязан , если я добавляю в Menu menu к параметрам процедуры - то она перестает быть переопределенной и кнопки не обрабатывают нажатия поэтому я решил отсылать отсылать this в надежде что смогу через него обратиться к Menu - но пока не получается
//обработка нажатий кнопок в ActionBar
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_bluetooth:
//Включаем bluetooth. Если он уже включен, то ничего не произойдет
String enableBT = BluetoothAdapter.ACTION_REQUEST_ENABLE;
startActivityForResult(new Intent(enableBT), 0);
//Menu menu = this.findItem(R.id.menu_bluetooth);
BT_icon_actionBar(this);
return true;
//case R.id.menu_bluetooth:
//
// return true;
default:
return false;
}
}
//обработка нажатий кнопок в ActionBar
не знаю правильно или нет я сделал следующим образом: по совету поменял название метода на onBtIconActionBar() и сделал его с двумя параметрами
public void onBtIconActionBar(Menu menu, MenuItem item) {
if (menu == null){
if (bluetooth_enb_dsbl.Bl_ebl_dsbl(this) == 0) {
item.setIcon(R.drawable.ic_action_bar_bluetooth_disabled);
} else {
item.setIcon(R.drawable.ic_action_bar_bluetooth_enabled);
}
}
if (item == null){
MenuItem feed = menu.findItem(R.id.menu_bluetooth);
if (bluetooth_enb_dsbl.Bl_ebl_dsbl(this) == 0) {
feed.setIcon(R.drawable.ic_action_bar_bluetooth_disabled);
} else {
feed.setIcon(R.drawable.ic_action_bar_bluetooth_enabled);
}
}
}
и вызываю его по разному
onBtIconActionBar(menu,null); или onBtIconActionBar(null, item);
Но я уверен можно сделать изящнее
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне необходимо хранить, обновлять и отдавать по запросу некоторые элементы графаПод графом в данном случае я подразумеваю его представление...
Бывают ли такие случаи, когда нужно прописывать и работать напрямую с итератором а не в foreach?
В одном и том же файле делают медиа запрос для: