Я использую этот код для своего приложения для Android. но проблема в этом коде, что он отлично работает при установке на эмулятор. как только я попытаюсь установить это на своем мобильном устройстве, но при открытии приложения он отображает сообщение об ошибке, поскольку приложение не отвечает. И мне нужно использовать кнопки переключателя. Есть ли другой способ его использовать?
switch1= (Switch) findViewById(R.id.switch1);
switch1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
if(switch1.getText().toString().equals("On"))
{
String message = "t030s005n123456";
sendSMS(phoneNo, message);
}
else if(switch1.getText().toString().equals("Off"))
{
String message = "notn123456";
sendSMS(phoneNo, message);
}
}
});
Вызовите sendSms()
в новом потоке. Это просто быстрое решение.
new Thread(new Runnable() {
@Override
void run() {
sendSms();
}
}
}).start();
В качестве альтернативы вам может потребоваться показать диалог выполнения и выполнить другие действия после завершения задачи отправки. В этом случае используйте AsyncTask
. Google для хороших примеров.
switch1 = (Switch) findViewById (R.id.switch1);
Api levels lesser than 14 does not support your switch1 obj must be null..
place if(switch1!=null)
{
//click listener
}
Также убедитесь, что ваше устройство обновлено до уровня 14 уровня ICE_CREAM_SANDWICH
.
Поскольку виджет переключателя находится от уровня 14 api.