Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启用飞机模式Onclick-Android_Android - Fatal编程技术网

启用飞机模式Onclick-Android

启用飞机模式Onclick-Android,android,Android,我有一个切换按钮在我的项目,我想是切换按钮应该打开飞行模式,然后自动关闭后5秒。我找到了一个代码,但我不知道如何修改它以使用切换按钮 public void onClick(View v) { // check current state first boolean state = isAirplaneMode(); // toggle the state toggleAirplaneMode(state); state = isAirplaneMode

我有一个切换按钮在我的项目,我想是切换按钮应该打开飞行模式,然后自动关闭后5秒。我找到了一个代码,但我不知道如何修改它以使用切换按钮

public void onClick(View v) {
    // check current state first
    boolean state = isAirplaneMode();
    // toggle the state
    toggleAirplaneMode(state);

    state = isAirplaneMode();
    // toggle the state
    toggleAirplaneMode(state);
    ser = new ServiceState();
    ser.setState(STATE_IN_SERVICE);
}
切换按钮

toggle = (ToggleButton) findViewById(R.id.tglbtn1);
toggle.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        if (toggle.isChecked()) {
            Toast.makeText(
                    getApplicationContext(),
                    "toggle button enabled",
                    Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(),
                    "toggle button disabled",   Toast.LENGTH_LONG).show();
        }
    }
});

}
}

请看此文档,它是关于Android上的
切换按钮
管理的:

可能会帮助您了解它是如何工作的

也就是说,如此快速地停用/重新启用飞机模式的目的是什么

要在x秒内执行任务,您可以使用
计时器
类:

或者更好:

我不确定你的方法到底在做什么,所以我只是猜测一些细节。但你应该能够填补这些空白:

public void onClick(View v) {
    // check current state first
    boolean state = isAirplaneMode();
    // toggle the state
    toggleAirplaneMode(state);

    state = isAirplaneMode();
    // toggle the state
    toggleAirplaneMode(state);
    ser = new ServiceState();
    ser.setState(STATE_IN_SERVICE);

    // you might want to disable the button here

    // change state back after 5s
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            // TODO actually change the state variable
            // and toggle back the airplane mode
            // if you disabled the button, enable it here
        }
    }, 5000);
}

到底是什么不起作用?集成有什么问题?我的答案只是关于延迟的代码执行。