Виджет переключения Android не работаетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Виджет переключения Android не работает

Сообщение Anonymous »

Я создаю функцию переадресации вызовов с переключателем, который включает и выключает ее. Однако, хотя у меня все на месте, мой виджет переключения вообще не работает. Я специально внедрил всплывающее уведомление, чтобы проверить, работает ли оно, но, к сожалению, оно даже не отображается.

xml-файл
класс Java

Код: Выделить всё

public class CallForwarding extends Activity implements OnCheckedChangeListener {

Switch switch1;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
switch1 = (Switch) findViewById(R.id.switch1);

if (switch1 != null) {
switch1.setOnCheckedChangeListener(this);
}

// switch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
switch1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (buttonView.isChecked()){
//
Toast.makeText(CallForwarding.this, "Call Forwarding is    activated",Toast.LENGTH_LONG).show();
callforward("*21*91231231#"); // 0123456789 is the number you want to forward the calls.;

}
else{
Toast.makeText(CallForwarding.this, "Call Forwarding is deactivated",Toast.LENGTH_LONG).show();
callforward("#21#");

}
}
});

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

private void callforward(String callForwardString)
{
PhoneCallListener phoneListener = new PhoneCallListener();
TelephonyManager telephonyManager = (TelephonyManager)
this.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);

Intent intentCallForward = new Intent(Intent.ACTION_CALL);
Uri mmiCode = Uri.fromParts("tel", callForwardString, "#");
intentCallForward.setData(mmiCode);
startActivity(intentCallForward);
}

private class PhoneCallListener extends PhoneStateListener
{
private boolean isPhoneCalling = false;

@Override
public void onCallStateChanged(int state, String incomingNumber)
{
if (TelephonyManager.CALL_STATE_RINGING == state)
{
// phone ringing
}

if (TelephonyManager.CALL_STATE_OFFHOOK == state)
{
// active
isPhoneCalling = true;
}

if (TelephonyManager.CALL_STATE_IDLE == state)
{
// run when class initial and phone call ended, need detect flag
// from CALL_STATE_OFFHOOK
if (isPhoneCalling)
{
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
isPhoneCalling = false;
}
}
}
}

@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub

}
}
На самом деле я следовал примеру, в котором используются две кнопки: включения и выключения, однако в моем коде вместо этого я использую переключатель. Итак, вопрос в том, как заставить эту функцию работать. Логов ошибок вообще нет. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/216 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»