Помогите советом. приложение в 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);
Но я уверен можно сделать изящнее
Продвижение своими сайтами как стратегия роста и независимости