0

编辑:

好的,所以我更新了它以执行用户“android 开发人员”的建议,并且每次我进入应用程序时开关仍然保持未选中状态。

这是代码片段。顺便说一句,这是我的第一个应用程序,所以请轻松一点。我在学。

public class MainActivity extends Activity implements View.OnClickListener {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    PreferenceManager.getDefaultSharedPreferences(this).getBoolean("sw1",false);
}

public void onClick(View v) {}

public void sw1(View view) {
    // Is the view now checked?
    boolean checked = ((Switch) view).isChecked();
    // Check which checkbox was clicked
    switch(view.getId()) {
        case R.id.sw1:
            if (checked) try {
                //Toast.makeText(this, "SW1 Checked", Toast.LENGTH_SHORT).show();
                Runtime.getRuntime().exec(new String[] { "su","-c","mod1" });
                PreferenceManager .getDefaultSharedPreferences(this).edit().putBoolean("sw1",true).commit();
            } catch (IOException e) {
                e.printStackTrace();
            }
            else try {
                //Toast.makeText(this, "SW1 NOT Checked", Toast.LENGTH_SHORT).show();
                Runtime.getRuntime().exec(new String[] { "su","-c","mod1b" });
                PreferenceManager .getDefaultSharedPreferences(this).edit().putBoolean("sw1",false).commit();
            } catch (IOException e) {
                e.printStackTrace();
                break;}
    }
}
4

1 回答 1

0

定义您的应用程序的“退出”。

如果你通过完成它导致活动被破坏,它不应该恢复状态,你应该将它存储在真实存储中(sharePreferences,DB,内部/外部存储,...)。

但是,如果您希望在配置更改后恢复它(例如在旋转设备后),如果您使用 android 的普通视图,它应该会自动为您恢复,如果您希望恢复全新的自定义视图,请在onCreate() 方法而不是 onRestoreInstanceState() 方法。

另一种选择是不完成活动,并通过使用片段而不是多个活动来显示所有内容,就好像它确实关闭了一样。

于 2013-07-31T21:41:38.920 回答