LINUX.ORG.RU
решено ФорумMobile

Чекбокс не чекается автоматически при включении bt

 ,


0

2

Есть код:

      OnClickListener oclCheckBt = new OnClickListener() {
            public void onClick(View v){
                Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
                if(BluetoothAdapter.getDefaultAdapter().isEnabled()){
                    ((CheckedTextView) v).setChecked(true);
                }
            }
        };
Он должен включать синезуб, если тот не включен, и отмечать это в чекбоксе, а точнее, в CheckedTextView. Но отмеченным чекбокс становится лишь после второго нажатия на элемент, когда уже всё включено. Как сделать так, чтобы галочка ставилась сразу? Думаю, что надо сделать что-то с интентами, но вот что - ума не приложу.



Последнее исправление: byulent (всего исправлений: 1)

Попробуйте вот этот код:

if(BluetoothAdapter.getDefaultAdapter().isEnabled()){
    ((CheckedTextView) v).setChecked(true);
}
перенести в метод onActivityResult, переопределите его у активности. Интент работает асинхронно, сразу после того, как вы его отправили блютуз ещё не включен. Нужно дождаться коллбэка. Для startActivityForResult коллбэк это onActivityResult.

Weres ★★★
()
Ответ на: комментарий от Weres

Помогло. У меня были мысли об этом, но сперва я не догадался, как это реализовать.

А такой вопрос: как сделать так, чтобы чекбокс отмечался по включении блютуза в шторке?

byulent
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.